一、环境配置
软件:
STM32CubeMX :6.6.1
Keil:5.31
mcuisp
野火串口调试助手
硬件:
STM32F013C8T
二、使用STM32CubeMX配置项目
1.新建工程
2.搜索型号,选择合适的型号进行工程建立
3.设置RCC
4.设置SYS
5.设置USART
6.设置NVIC
7.创建项目
三、使用Keil中配置代码
1.在 main.c中 main函数之前定义 全局变量
char c;//指令 0:停止 1:开始
char message[]="hello Windows\n";//输出信息
char tips[]="CommandError\n";//提示1
char tips1[]="Start.....\n";//提示2
char tips2[]="Stop......\n";//提示3
int flag=0;//标志 0:停止发送 1.开始发送
2.在 main函数中设置接收中断
- 函数原型
HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
- 功能
功能:串口中断接收,以中断方式接收指定长度数据。
大致过程是,设置数据存放位置,接收数据长度,然后使能串口接收中断。
接收到数据时,会触发串口中断。
再然后,串口中断函数处理,直到接收到指定长度数据
而后关闭中断,进入中断接收回调函数,不再触发接收中断。(只触发一次中断)
- 参数
UART_HandleTypeDef *huart UATR的别名
huart1 *pData 接收到的数据存放地址
Size 接收的字节数
HAL_UART_Receive_IT(&huart1, (uint8_t *)&c, 1);
3.在 main函数中的 while循环里面添加传输代码
if(flag==1){
//发送信息
HAL_UART_Transmit(&huart1, (uint8_t *)&message, strlen(message),0xFFFF);
//延时
HAL_Delay(1000);
}
4.在 main函数下面重写中