STM32CubeMX之串口配置

STM32CubeMX之串口配置

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

串口简介

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

串口特性

  1. 全双工:串行发送TX和串行接收RX(发送数据和接收数据不会相互干扰);
  2. 异步通信:一帧数据包含起始位,数据位,(校验位)停止位;
  3. 最高通信速率: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=%d\n",key);
}

  运行结果:
在这里插入图片描述
示例代码:https://download.csdn.net/download/weixin_44453694/16581092

猜你喜欢

转载自blog.csdn.net/weixin_44453694/article/details/115531700