赞
踩
硬件:STM32F407 核心开发板
单片机:STM32F407VET6
Keil版本:5.32
STM32CubeMX版本:6.11.0
1. 选择时钟源
2. 配置时钟
3. 使能Debug功能:Serial Wire
4. HAL库时基选择:SysTick
5. USART1配置:选择异步模式。
6. 配置工程参数:在Project标签页中,配置项目名称和位置,选择工具链MDK-ARM。
7. 生成代码:在Code Generator标签页中,配置工程外设文件与HAL库,勾选头文件.c和.h文件分开,然后点击Project > Generate Code生成代码。
1. main.c增加代码:添加printf的头文件 #include "stdio.h",定义变量RxBuffer和RxFlag,然后按照陶晶驰串口屏的通信协议发送即可,例子如下。
添加串口接收的中断函数,即可实现串口接收。
- #include "stdio.h"
-
-
- uint8_t RxBuffer; //接收缓冲区
- uint16_t RxFlag = 0; //接收完成标志;0表示接受未完成,1表示接收完成
-
-
- printf("page0.t2.txt=\"三角波\"\xFF\xFF\xFF");
- printf("page0.n0.val=%d\xFF\xFF\xFF", Fre);
-
-
- /* USER CODE BEGIN 3 */
- if(RxFlag == 1)
- {
- RxFlag = 0;
- }
- /* USER CODE END 3 */
-
-
- /* USER CODE BEGIN 4 */
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
-
- if(huart->Instance == USART1) //判断发生接收中断的串口
- {
- RxFlag = 1; //置为接收完成标志
- }
- HAL_UART_Receive_IT(&huart1, (uint8_t *)&RxBuffer, 2);
- }
- /* USER CODE END 4 */
2. usart.c增加代码:添加头文件#include "stdio.h"。在末尾用户代码区增加如下代码。
- #include "stdio.h"
-
-
- /* USER CODE BEGIN 1 */
- struct __FILE
- {
- int a;
- };
- FILE __stdout;
-
- int fputc(int ch, FILE *f)
- {
- HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, 0xffff); //HAL库串口发送函数
- return ch;
- }
-
- int fgetc(FILE *f)
- {
- uint8_t ch = 0;
- HAL_UART_Receive(&huart1, &ch, 1, 0xffff); //HAL库串口接收函数
- return ch;
- }
- /* USER CODE END 1 */
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。