STM32-串口H

1.数据同信方式:

按数据通信方式分类,可分为串行通信和并行通信两种。串行和并行的对比如下图所示:

 串行通信的基本特征是数据逐位顺序依次传输,优点是传输线少、布线成本低、灵活度高 等优点,一般用于近距离人机交互,特殊处理后也可以用于远距离,缺点就是传输速率低。 而并行通信是数据各位可以通过多条线同时传输,优点是传输速率高,缺点就是布线成本 高,抗干扰能力差因而适用于短距离、高速率的通信。

2. 数据传输方向:

根据数据传输方向,通信又可分为全双工、半双工和单工通信。全双工、半双工和单工通 信的比较如下图所示:

单工是指数据传输仅能沿一个方向,不能实现反方向传输,如校园广播。 半双工是指数据传输可以沿着两个方向,但是需要分时进行,如对讲机。 全双工是指数据可以同时进行双向传输,日常的打电话属于这种情形。 这里注意全双工和半双工通信的区别:半双工通信是共用一条线路实现双向通信,而全双 工是利用两条线路,一条用于发送数据,另一条用于接收数据。

3. 数据同步方式:

根据数据同步方式,通信又可分为同步通信和异步通信。同步通信和异步通信比较如下图 所示:

 

 同步通信要求通信双方共用同一时钟信号,在总线上保持统一的时序和周期完成信息传输。 优点:可以实现高速率、大容量的数据传输,以及点对多点传输。缺点:要求发送时钟和接收 时钟保持严格同步,收发双方时钟允许的误差较小,同时硬件复杂。 异步通信不需要时钟信号,而是在数据信号中加入开始位和停止位等一些同步信号,以便 使接收端能够正确地将每一个字符接收下来,某些通信中还需要双方约定传输速率。优点:没 有时钟信号硬件简单,双方时钟可允许一定误差。缺点:通信速率较低,只适用点对点传输。

4. 通信速率:

 (1)传信率:每秒钟传输的信息量,即每秒钟传输的二进制位数,单位为 bit/s(即比特每秒), 因而又称为比特率。

(2)传码率:每秒钟传输的码元个数,单位为 Baud(即波特每秒),因而又称为波特率。

(3)比特率和波特率的关系可以用以下式子表示: 比特率 = 波特率 * log2M

5.串口:

(1)按位发送数据和接受的接口 

  (2)  RS232    数据线:TXD/RXD,信号地GND

(3)STM32串口与电脑通信: 使用CH340等USB/串口转换芯片,TXD和RXD必须交差连接。

6.RS232异步通信协议:

启动位:必须占一个位长,保持逻辑0电平

有效数据位:可选5,6,7,8,9个位长,LSB在前,MSB在后

校验位:可选1个位长,也可以没有该位

停止位:必须有,可选0.5,1,1.5, 2个位长,保持逻辑1电平

7.STM32的USART简介:

    USART通用异步收发器。

 8.设置USART的波特率:

baud=fck/(16*USARTDIV)

下面举个例子说明: 当串口 1 设置需要得到 115200 的波特率,fck = 72MHz,那么可得: 115200 = 72000000 /(16 ∗ USARTDIV )得到 USARTDIV = 39.0625,分离 USARTDIV 的整数部分与小数部分,整数部分为 39,即 0x27,那么 DIV_Mantissa = 0x27;小数部分为 0.0625,转化为十六进制即 0.0625*16 = 1,所以 DIV_Fractionp = 0x1,USART_BRR 寄存器应该赋值为 0x271,成功设置波特率为 115200。

9.HAL外设初始化MSP回调机制:

HAL_PPP_Init()---->HAL_PPP_MspInit()

HAL_PPP_MspInit()作用:配置PPP用到的硬件,如:GPIO,NVIC,USART

10.HAL库中断回调机制:

中断服务函数-->HAL_PPP_IRQHandler()--->HAL_PPP_xxxCallback()

HAL_PPP_xxxCallback()作用:根据回调函数类型,编写对应的中断处理程序,用户可选择是否使用并重写

11.USART异步通信配置步骤(重点):

1,配置串口工作参数        HAL_UART_Init()

2,串口底层初始化        HAL_UART_MspInit()   配置GPIO,NVIC,CLOCK

3,开启串口异步接受中断        HAL_UART_Receive_IT()

4,设置优先级使能中断        HAL_NVIC_SetPrionty()   HAL_NVIC_EnableIRQ()

5,编写中断服务函数        USARTx_IRQHandler()

6.串口数据发送        USART_DR  HAL_UART_Transmit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值