单片机核心学习:(六)串口UART编程(STM32F103)

目录

一、硬件知识-UART硬件介绍

1. 串口的硬件介绍

2. 串口的参数

(1)怎么发送一字节数据,比如‘A‘ ?

(2)逻辑电压

3. 串口电平

4. 串口内部结构

二、STM32F103 - UART操作

1、串口编程步骤

1.1 看原理图确定引脚

1.2 配置引脚为UART功能

1.3 设置串口参数

1.4 根据状态寄存器读写数据

2、STM32F103串口框架

3、STM32F103串口操作

3.1 看原理图确定引脚

3.2 配置引脚为UART功能

3.3 设置串口参数

3.4 根据状态寄存器读写数据

3.5 USART1的寄存器地址

三、STM32F103 - UART编程


一、硬件知识-UART硬件介绍

1. 串口的硬件介绍

UART的全称是Universal Asynchronous Receiver and Transmitter,即异步发送和接收。 串口在嵌入式中用途非常的广泛,主要的用途有:

  • 打印调试信息;

  • 外接各种模块:GPS、蓝牙;

串口因为结构简单、稳定可靠,广受欢迎。通过三根线即可,发送、接收、地线

TxD线把PC机要发送的信息发送给ARM开发板。 最下面的地线统一参考地。

2. 串口的参数

  • 波特率:一般选波特率都会有9600,19200,115200等选项。其实意思就是每秒传输这么多个比特位数(bit)。

    • 如果是波特率:115200、数据位:8位、校验位:无校验、起始位、停止位

      • 每一位传输时间:t = 1 / 115200  s

      • 传输1Byte:需要10位(Start、Data、Stop) t = 10 / 115200 s

      • 每秒能传输:1 / t = 115200 /10 = 11520 byte

  • 起始位:先发出一个逻辑”0”的信号,表示传输数据的开始。

  • 数据位:可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)。小端传输。

  • 校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。

  • 停止位:它是一个字符数据的结束标志

(1)怎么发送一字节数据,比如‘A‘ ?

‘A’的ASCII值是0x41,二进制就是01000001,怎样把这8位数据发送给PC机呢?

  • 双方约定好波特率(每一位占据的时间);

  • 规定传输协议

    • 原来是高电平,ARM拉低电平,保持1bit时间;

    • PC在低电平开始处计时;

    • ARM根据数据依次驱动TxD的电平,同时PC依次读取RxD引脚电平,获得数据;

(2)逻辑电压

① 前面图中提及到了逻辑电平,也就是说代表信号1的引脚电平是人为规定的。 如图是TTL/CMOS逻辑电平下,传输‘A’时的波形:

在xV至5V之间,就认为是逻辑1,在0V至yV之间就为逻辑0。

② 如图是RS-232逻辑电平下,传输‘A’时的波形:

在-12V至-3V之间,就认为是逻辑1,在+3V至+12V之间就为逻辑0。

RS-232的电平比TTL/CMOS高,能传输更远的距离,在工业上用得比较多。

市面上大多数ARM芯片都不止一个串口,一般使用串口0来调试,其它串口来外接模块。

3. 串口电平

       ARM芯片上得串口都是TTL电平的,通过板子上或者外接的电平转换芯片,转成RS232接口,连接到电脑的RS232串口上,实现两者的数据传输。

      现在的电脑越来越少有RS232串口的接口,当USB是几乎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值