搜索
查看: 2211|回复: 7

[已解决] 关于stm32f103cbt6串口波特率自适应

[复制链接]

该用户从未签到

2

主题

4

帖子

0

蝴蝶豆

初级会员

最后登录
2020-10-31
发表于 2019-7-17 11:04:06 | 显示全部楼层 |阅读模式
stm32f103cbt6串口波特率是否支持自适应?传输格式为N,8,1;波特率从9600-115200;实现接收外部串口数据波特率自适应?接收的外部数据,格式是固定的,但是波特率不同,是否有好的解决方案?谢谢。
回复

使用道具 举报

该用户从未签到

1

主题

9

帖子

2

蝴蝶豆

中级会员

最后登录
2020-11-26
发表于 2019-7-17 14:21:19 | 显示全部楼层
单片机本身不支持。
可以靠软件去做,而且需要收发双方约定好。
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

1174

帖子

36

蝴蝶豆

论坛元老

最后登录
2021-4-9
发表于 2019-7-18 10:57:17 | 显示全部楼层
本帖最后由 sylar.z 于 2019-7-18 10:58 编辑

首先指定好9600-115200之间的哪几个波特率被用于通讯,接收机接收到数据后,若解码发现数据不对,切换成下一种约定波特率进行接收,直到找到对应波特率,实现正常通讯。或所有约定波特率都尝试完成,无法通讯,切换回默认波特率。
回复 支持 反对

使用道具 举报

该用户从未签到

18

主题

743

帖子

4

蝴蝶豆

金牌会员

最后登录
2021-4-16
发表于 2019-7-18 14:08:40 | 显示全部楼层
硬件不支持,软件设计一下
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

1018

帖子

28

蝴蝶豆

论坛元老

最后登录
2023-1-11
发表于 2019-7-18 15:31:01 | 显示全部楼层
格式固定,是否有指令头,校验,是否固定时间间隔/频率 发送 呢?
其实不难,开机后初始化成某一波特率,然后开始接收数据,如果一段时间内接收到有正确的数据,那么就不再变化波特率,保持当前波特率进行通信。不然软件就开始调整波特率,再开始接数据,如果一段时间后仍未接收到正确的数据,那么就继续变化波特率,直到正确接收到数据为止
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

1351

帖子

62

蝴蝶豆

论坛元老

最后登录
2021-9-26
发表于 2019-7-18 18:17:35 | 显示全部楼层
光有本机也不行,对方也要有相应机制,
对方要持续发送生命报文。
本机设置不同波特率尝试接收数据,一旦收到正确数据后,锁定设置。并向对方发送响应。
双方才握手成功,然后进入正常通讯阶段
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

4

帖子

0

蝴蝶豆

初级会员

最后登录
2020-10-31
 楼主| 发表于 2019-8-6 13:42:33 | 显示全部楼层
明白了,谢谢大家
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

79

帖子

0

蝴蝶豆

初级会员

最后登录
2019-10-24
发表于 2019-8-6 14:02:05 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-8 01:02 , Processed in 1.167141 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表