基于HAL库实现stm32简单串口通信
USERT原理
介绍
通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。 它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。 使用多缓冲器配置的DMA方式,可以实现高速数据通信。
功能
接口通过三个引脚与其他设备连接在一起。任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。
- RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据。
- TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,TX引脚处于高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。
框图
项目创建
keil编辑生成的代码
- 打开刚才生成的项目,在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);
- 查看端口输出 3.配置debug
run运行:
烧录
烧录通过cubeMX生成代码不能直接编译后直接执行,需要通过把boot0设置为0进入运行模式后再复位在可以正常运行。
参考资料
-
[1]
上一篇:
Java架构师技术进阶路线图