串口速率自适应问题

yxl_xx 2010-07-15 03:10:05
在程序上如何获取串口速率,即在设置串口时怎么知道人家设置好的串口速率。
...全文
324 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yxl_xx 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sevenchrist 的回复:]
引用 6 楼 yxl_xx 的回复:
引用 3 楼 sevenchrist 的回复:
一般上都是根据自己添加的协议来进行处理,从端匹配主端:

比如说主端发送一个固定值0x5A,从端从低波特率开始,边调整边接受,直到收到0x5A为止,然后回复一个0x5A给主端,主端接收到0x5A后,停止发送0x5A,完成匹配。

这个办法我听过
做起来比较困难
比如怎么采样
我属于应用层 这些采……
[/Quote]
嗯 知道了
这个办法相当于递推法
采样的那种方法貌似是直接采多少个样就能知道波特率的
我试下你这种方法 谢谢
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yxl_xx 的回复:]
引用 3 楼 sevenchrist 的回复:
一般上都是根据自己添加的协议来进行处理,从端匹配主端:

比如说主端发送一个固定值0x5A,从端从低波特率开始,边调整边接受,直到收到0x5A为止,然后回复一个0x5A给主端,主端接收到0x5A后,停止发送0x5A,完成匹配。

这个办法我听过
做起来比较困难
比如怎么采样
我属于应用层 这些采样应该是HDLC驱动层做的事吧?
一般……
[/Quote]

这和什么层没关系,主端固定发0x5A(或者其他约定好的值),从端先用9600接收,收到不对或者收不到,那就换成19200……
就这样一个过程,不涉及采样什么。

你说的那个方法是硬件自适应。
icansaymyabc 2010-07-20
  • 打赏
  • 举报
回复
要不就穷举,反正速率参数只有几个,逐一尝试也费不了多少时间
yxl_xx 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cnlm2 的回复:]
CreateFile 打开串口
GetCommState 检测串口设置
SetCommState 设置串口
BuilderCommDCB 用字符串中的值来填充设备控制块
GetCommTimeouts 检测通信超时设置
SetCommTimeouts 设置通信超时参数
SetCommMask 设定被监控事件
WaitCommEvent 等待被监控事件发生
WaitF……
[/Quote]
我用的是linux C语言
还是表示感谢 呵呵
yxl_xx 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sevenchrist 的回复:]
一般上都是根据自己添加的协议来进行处理,从端匹配主端:

比如说主端发送一个固定值0x5A,从端从低波特率开始,边调整边接受,直到收到0x5A为止,然后回复一个0x5A给主端,主端接收到0x5A后,停止发送0x5A,完成匹配。
[/Quote]
这个办法我听过
做起来比较困难
比如怎么采样
我属于应用层 这些采样应该是HDLC驱动层做的事吧?
一般好像采样16个比较合适
  • 打赏
  • 举报
回复
一般上都是根据自己添加的协议来进行处理,从端匹配主端:

比如说主端发送一个固定值0x5A,从端从低波特率开始,边调整边接受,直到收到0x5A为止,然后回复一个0x5A给主端,主端接收到0x5A后,停止发送0x5A,完成匹配。
cnlm2 2010-07-19
  • 打赏
  • 举报
回复
CreateFile 打开串口
GetCommState 检测串口设置
SetCommState 设置串口
BuilderCommDCB 用字符串中的值来填充设备控制块
GetCommTimeouts 检测通信超时设置
SetCommTimeouts 设置通信超时参数
SetCommMask 设定被监控事件
WaitCommEvent 等待被监控事件发生
WaitForMultipleObjects 等待多个被监测对象的结果
WriteFile 发送数据
ReadFile 接收数据
GetOverlappedResult 返回最后重叠(异步)操作结果
PurgeComm 清空串口缓冲区,退出所有相关操作
ClearCommError 更新串口状态结构体,并清除所有串口硬件错误
CloseHandle 关闭串行口

这个是win32的api,GetCommState应该可以解决你的问题!
悟迟 2010-07-19
  • 打赏
  • 举报
回复
帮你顶到第一页
yangzhifu 2010-07-19
  • 打赏
  • 举报
回复
别人和你通讯应当会给你一个速率吧

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧