UART
1> UART硬件框图
2> 通信协议
位段 | 内容 |
---|---|
空闲位 | TX保持高电平 |
起始位 | TX由高变低,保持=1bit位宽 |
数据为 | 5~8位ASCII的编码数据 |
校验位 | 校验方式:奇校验 / 偶校验 |
停止位 | TX由低变高,保持>=0.5bit位宽 |
常用配置:115200, 8N1
波特率为115200,
数据位:8位;
奇偶校验:无;
停止位:1位;
3> 硬件设计
PA9:USART1_TX;
PA10: USART1_RX
4> 发送1Byte数据_轮询方式
bsp_uart.c:
#include "bsp_uart.h"
// USART1_TX - PA9
// USART1_RX - PA10
void USART1_Init(void)
{
/* configures GPIO ports */
GPIO_InitTypeDef GPIO_InitStruct;
USART_InitTypeDef USART_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1, ENABLE);
/* USART1_TX PA9 */
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USART1_RX PA10 */
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA