当前位置:   article > 正文

HAL库STM32C8T6最小系统板用串口做应声虫

HAL库STM32C8T6最小系统板用串口做应声虫

先时钟配置

开启串口(这里面的TIM1和TIM2可以不用管,是我自己其他项目用到的,这里与应声虫无关)

记得要开启中断

一些其他的配置

在usart.c文件里面定义几个变量写入回调函数

RxBuff为数据缓冲区,给中断接收函数储存数据的

DataBuff为数据保存区,每次接收到的数据都保存到这里来

Rx_flag为接收标志

Rx_len为DataBuff接收长度

在这里我每发送一次数据指示灯就会闪烁一次

  1. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
  2. {
  3. if(huart->Instance==USART1)
  4. {
  5. DataBuff[Rx_len++]=RxBuff[0]; //串口中断每次只接收一个字节
  6. Rx_flag=0;
  7. if(RxBuff[0]=='\n')
  8. {
  9. Rx_flag=1;
  10. HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
  11. printf("DataBuff:%s\r\n",(char*)&DataBuff);
  12. RxBuff[0]=0; //发送完后要把缓冲区清零
  13. Rx_len=0; //发送完后要把标志位清零
  14. Rx_flag=0; //发送完后要把标志位清零
  15. memset(DataBuff,0x00,sizeof(DataBuff));//发送完后要把数据区清零
  16. }
  17. else if(Rx_len>1000)
  18. {
  19. printf("error!!!");
  20. }
  21. HAL_UART_Receive_IT(&huart1,(uint8_t*)&RxBuff,1);
  22. }
  23. }

在main.c函数while循环里面开启中断

重定向(有了这个才可以用printf在打印出数据)

运行结果

应声虫程序运行成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/433249
推荐阅读
相关标签
  

闽ICP备14008679号