串口通信

同步通信:由于有同步时钟信号,可以通过时钟信号解析。

异步通信:没有时钟信号,必须知道波特率才能解析。

   

Usart同步异步通信方式

Uart异步通信方式

   

RXD数据输入引脚,负责接收数据

TXD数据发送引脚,负责发送数据

具体的引脚对应单片机哪个IO口,查芯片手册stm32f103rc.pdf

串行通信三种传送方式

串口通信过程

   

 

串口通信寄存器

Usart_sr 状态寄存器

Usart_dr 数据寄存器

Usart_crX(1~3) 控制寄存器

具体例程中是通过操作库函数来控制具体的寄存器.

 

操作串口的步骤

  1. 串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();
  2. 串口复位:USART_DeInit(); 这一步不是必须的
  3. GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP
  4. 串口参数初始化:USART_Init();
  5. 开启中断并且初始化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步即可。