STM32
直播中

吴湛

9年用户 883经验值
擅长:电源/新能源
私信 关注
[问答]

STM32CubeMX串口的特性是什么?如何配置?

STM32CubeMX串口的特性是什么?如何配置?

回帖(1)

汤艳

2021-11-17 14:45:50
  串口通信是一种设备间非常常用的串行通信方式,以比特位的形式发送或接收数据,电子工程师经常使用这种方式来调试数据。本章节我们将学习串口发送和接收数据。STM32F103C8开发板通过串口协议和上位机软件对话,实现设备间的数据传输。
串口简介

  串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。本次所所使用开发板为mini USB串口,有3个分别为USART1、USART2和USART3。我们将以串口1为例完成开发板与上位机之间通讯。
串口特性



  • 全双工:串行发送TX和串行接收RX(发送数据和接收数据不会相互干扰);
  • 异步通信:一帧数据包含起始位,数据位,(校验位)停止位;
  • 最高通信速率:4.5Mbit/s

硬件设计

  使用跳线帽将PA9与CH340_RXD相连,PA10与CH340_TXD相连。





软件设计

  打开STM32CbeMX软件,配置串口串口、开启串口中断





  串口1配置:全双工异步通信、波特率为115200、8个数据位、1个停止位、无校验位





  优先级分组设置:2位抢占优先级2位副优先级





生成代码

   基本参数配置示例
  波特率、数据位、停止位、校验位





   中断和硬件接口配置





  中断服务函数示例
  HAL库将所有的中断服务函数都保存在stm32f1xx_it.c中。
  串口1中断服务函数:





  主函数

key=KEY_GetVal();
if(key)
{
HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin,GPIO_PIN_SET);
HAL_Delay(50);
HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin,GPIO_PIN_RESET);
printf("串口发送数据测试,key=%dn",key);
}
运行结果:





示例代码:https://download.csdn.net/download/weixin_44453694/16581092
举报

更多回帖

发帖
×
20
完善资料,
赚取积分