应声虫"/>
HAL库STM32C8T6最小系统板用串口做应声虫
先时钟配置
开启串口(这里面的TIM1和TIM2可以不用管,是我自己其他项目用到的,这里与应声虫无关)
记得要开启中断
一些其他的配置
在usart.c文件里面定义几个变量写入回调函数
RxBuff为数据缓冲区,给中断接收函数储存数据的
DataBuff为数据保存区,每次接收到的数据都保存到这里来
Rx_flag为接收标志
Rx_len为DataBuff接收长度
在这里我每发送一次数据指示灯就会闪烁一次
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if(huart->Instance==USART1){DataBuff[Rx_len++]=RxBuff[0]; //串口中断每次只接收一个字节Rx_flag=0;if(RxBuff[0]=='\n'){Rx_flag=1;HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);printf("DataBuff:%s\r\n",(char*)&DataBuff);RxBuff[0]=0; //发送完后要把缓冲区清零Rx_len=0; //发送完后要把标志位清零Rx_flag=0; //发送完后要把标志位清零memset(DataBuff,0x00,sizeof(DataBuff));//发送完后要把数据区清零}else if(Rx_len>1000) {printf("error!!!");}HAL_UART_Receive_IT(&huart1,(uint8_t*)&RxBuff,1);}
}
在main.c函数while循环里面开启中断
重定向(有了这个才可以用printf在打印出数据)
运行结果
应声虫程序运行成功
更多推荐
HAL库STM32C8T6最小系统板用串口做应声虫
发布评论