当前位置:   article > 正文

用HAL库改写江科大的stm32入门例子_9-2 利用中断进行串口通讯

用HAL库改写江科大的stm32入门例子_9-2 利用中断进行串口通讯

电路和 《用HAL库改写江科大的stm32入门例子_9-1》一致。

我们在whlie循环当中,不断查询端口,获取数据,存放到一个数组当中,同时回显给电脑上。这种方法耗费cpu,还是用中断进行串口通讯更合理。

编写用户代码

配置完成后,重新生成代码,打开生成的代码,在main.c文件的用户变量去建立串口接收缓冲区数组。

 找到主函数,在while语句之前,开始通过串口中断接收数据。
  HAL_UART_Receive_IT(&huart1, (uint8_t*)data, sizeof(data));
  这句话的意思是以中断的方式从串口1接收数据,接收道到的数据存在data数组中,每次接收2个字节。 

ps:STM32CubeMX系列教程4:基本串行通信

上个结果图:

注意串口中断回调函数中,要判断串口的来源,因为所有串口中断都用这个回调函数,同时要注意,在这个回调函数中重新开启中断接收。

  1. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
  2. if(huart->Instance == USART1) //判断中断是否来自于串口1
  3. {
  4. HAL_UART_Transmit_IT(&huart1,(uint8_t*)rx_data,2); //将接收到的数据通过中断的方式发送出去
  5. HAL_UART_Receive_IT(&huart1,(uint8_t*)rx_data,2); //开始接收下一轮数据
  6. }
  7. }

其他不赘述。

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

闽ICP备14008679号