快捷搜索: 王者荣耀 脱发

基于HAL库实现stm32简单串口通信

USERT原理

介绍

通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。 它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。 使用多缓冲器配置的DMA方式,可以实现高速数据通信。

功能

接口通过三个引脚与其他设备连接在一起。任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。

  1. RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据。
  2. TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,TX引脚处于高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。

框图

项目创建

keil编辑生成的代码

  1. 打开刚才生成的项目,在main.c的while循环中添加代码
//发送的数据
		char data[]="hello windows!
";
		//发送
		HAL_UART_Transmit(&huart1, (uint8_t *)data, 15, 0xffff);
		//高电平点亮A4
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);
		
		//延时一秒
		HAL_Delay(100);
		//低电平熄灭A4
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);
		HAL_Delay(900);
  1. 查看端口输出 3.配置debug

run运行:

烧录

烧录通过cubeMX生成代码不能直接编译后直接执行,需要通过把boot0设置为0进入运行模式后再复位在可以正常运行。

参考资料

    [1]
经验分享 程序员 微信小程序 职场和发展