完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
原子哥的GSM模块波特率为38400,当单片机在接收从GSM模块发来的数据时规定了接收时间为100ms,超时则认为一次接收完成。但是我想问一下,当波特率为9600时规定100ms强制接收完成是不是不行啊?还有就是我同时使用了GSM和GPS,如果GSM和GPS都用这种方法来接收的话那优先级应该怎么设置啊?谢谢!
|
|
相关推荐
3个回答
|
|
|
我们的GSM模块是自动波特率识别的,不一定是38400,我们例程都是用115200.
而GPS模块,倒是默认都是38400的波特率. 如果你同时用这两个,以最长的为准. 另外,我们的不是100ms表示强制接收完哦.而是10ms. 对38400还是115200,10ms都是足够了,因为2个连续字符的空隙不可能大于10ms的... |
|
|
|
|
|
我们的GSM模块是自动波特率识别的,不一定是38400,我们例程都是用115200. 而GPS模块,倒是默认都是38400的波特率. 如果你同时用这两个,以最长的为准. 另外,我们的不是100ms表示强制接收完哦.而是10ms. 对38400还是115200,10ms都是足够了,因为2个连续字符的空隙不可能大于10ms的...
--------------------------------- 原子哥,我用的GSM模块是华为的GTM900C,这个模块只能用9600的波特率,GPS倒是38400的。那您觉得这个时间应该长合适啊?这两个接收的时候能不能都用定时器四啊?那优先级应该怎么设计呢?谢谢! |
|
|
|
|
|
这个间隔原则上是能识别出两个数据是不是连续的,比如你9600的波特率,那么最快的速度,每秒钟不能超过1K字节,那么每2个字符的间隙,最少就是1ms了,也就是说,如果你设置定时器溢出为5个ms,那么肯定就可以区分是不是连续的发送了,因为如果连续5ms没收到一个字符,说明不是连续传输的.
如果两个串口同时接收,那就用另外一个办法.直接一个定时器,也可以实现,但是你就用累加的方式.定时器每10ms中断一次,假设串口3收到数据了,那么就做一个标记,标记串口3开始收数据,然后还要有一个串口3的定时器累加变量,串口3每接收到一个数据,就对累加变量清零,然后定时器中断里面就对累加变量进行自增,假设增到3,那么就说明串口3的接收结束了,因为已经连续30ms没有收到一个字符了... 以此类推,任意多个串口都可以用一个定时器来统计,只是需要几个变量罢了. |
|
|
|
|
只有小组成员才能发言,加入小组>>
926 浏览 0 评论
如何使用STM32+nrf24l01架构把有线USB设备无线化?
3087 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2987 浏览 5 评论
3846 浏览 3 评论
3311 浏览 8 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
1266浏览 1评论
1212浏览 0评论
882浏览 0评论
973浏览 0评论
926浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:34 , Processed in 0.857793 second(s), Total 46, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3645