同步通信:由于有同步时钟信号,可以通过时钟信号解析。
异步通信:没有时钟信号,必须知道波特率才能解析。
Usart同步异步通信方式
Uart异步通信方式
RXD数据输入引脚,负责接收数据
TXD数据发送引脚,负责发送数据
具体的引脚对应单片机哪个IO口,查芯片手册stm32f103rc.pdf
串行通信三种传送方式
串口通信过程
串口通信寄存器
Usart_sr 状态寄存器
Usart_dr 数据寄存器
Usart_crX(1~3) 控制寄存器
具体例程中是通过操作库函数来控制具体的寄存器.
操作串口的步骤
- 串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();
- 串口复位:USART_DeInit(); 这一步不是必须的
- GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP
- 串口参数初始化:USART_Init();
- 开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)
NVIC_Init();
USART_ITConfig();
⑥使能串口:USART_Cmd();
⑦编写中断处理函数:USARTx_IRQHandler();
⑧串口数据收发:
void USART_SendData();//发送数据到串口,DR
uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据
⑨串口传输状态获取:
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);
如果不需要使用中断,则配置串口只需1,2,3,4,6步即可。