STM32----串行通信

  • 通信接口背景知识

处理器与外部设备通信的两种方式:

串行通信:

      按照数据传输方式分为单工、半双工、全双工

串行通信的通信方式:

  1. 同步通信:速度由时钟同步信号决定,每个时钟信号(如上升沿)发生时传输一个bit,如SPI、IIC通信接口;
  2. 异步通信:不带时钟同步信号,但有传输约定。如UART(通用异步收发器),单总线。UART(通用异步收发器)通信,                    发送/接收端使用统一波特率(确定每个bit所使用的时间),起始位/校验位/停止位;单总线通信,没有约                    定波特率,在标准时间内高低电平的占比来确定是1还是0。

 

同步异步的通信区别:

   *1* 同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流(如);异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
    *2* 同步通信效率高;异步通信效率较低。
    *3* 同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
    *4* 同步通信可用于点对多点;异步通信只适用于点对点。
 

  • 常见的串行通信接口

STM32的串口通信接口:

    UART:通用异步收发器

    USART:通用同步异步收发器

 

  • UART异步通信方式引脚连接方法

 

  • STM32F4 UART通信特点

 

  • 串口通信过程

 

  • STM32串口异步通信需要定义的参数

 

  • 串口操作相关库函数

 

  • 串口配置步骤

1.串口时钟使能:  RCC_APBxPeriphClockCmd();      

   GPIO时钟使能:RCC_AHB1PeriphClockCmd();

2.引脚复用映射:  GPIO_PinAFConfig();

3.GPIO端口模式设置:

   GPIO_Init();

   模式设置为GPIO_Mode_AF

4.串口参数初始化:USART_Init();

5.开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)      

   NVIC_Init();      

   USART_ITConfig();

6.使能串口:            USART_Cmd();

7.编写中断处理函数:USARTx_IRQHandler();

8.串口数据收发:

   void USART_SendData();//发送数据到串口,DR

   uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据

9.串口传输状态获取:

   FlagStatus USART_GetFlagStatus();

   void USART_ClearITPendingBit();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值