学习笔记03

01:USART串口外设

USART基本结构

时钟来源:PCLK2/1

波特率发生器->进行分频产生时钟通向发送/接收控制器->控制发送/接收移位->数据转向TX/RX(通过GPIO)

从发送数据寄存器转移到移位寄存器置TXE标志位,判断标志位来决定是否写下一个数据

(接收同理)

数据帧

选9位字长有校验,或8位字长无校验

02:串口的接收/发送

第一步:开启时钟,把需要用的USART和GPIO的时钟打开

第二步:GPIO初始化,把TX配置成复用输出,RX配置成输入

第三步:配置USART

第四步:配置中断,开启ITconfig和NVIC(输出使用)

第五步:开启USART

数据模式

HEX模式/十六进制模式/二进制模式:以原始数据的形式显示

文本模式/字符模式:以原始数据编码后的形式显示

完成实验现象

03:USART串口数据包

数据包的作用:将一个个单独的数据打包/分割

传输数据与包头包尾冲突:(解决方法)

1)限制载荷数据的范围:在发送时对数据进行限幅。(如发送x,y,z在0~100之间,则可限定发送范围为0~100)

2)如果无法避免载荷数据与包头包尾重复:尽量使用固定长度数据包。

3)增加包头包尾的数量,尽量使其呈现出载荷数据出现不了的状态

包头包尾可以不全要(如只要包头)

HEX数据包

优点:传输最直接,解析数据非常简单,适合模块发送原始的数据。(如使用串口通信的陀螺仪、温湿度传感器。

缺点:灵活性不足、载荷容易与包头包尾重复

HEX数据包接收

执行流程:(固定包长)

开始S = 0收到数据,进入中断,根据S = 0进入第一个状态的程序,判断数据包头是不是FF ,若是,则后置S = 1,退出中断,结束。后如图:

文本数据包

通常以换行作为包尾

优点:数据直观容易理解,非常灵活,适合一些输入指令进行人机交互的场合。(如蓝牙模块中的AT指令、CNC和3D打印的G代码)

缺点:解析效率低

文本数据包接收

执行流程:(可变包长)

接收数据时时刻监视是否收到包尾。如图:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值