求路过的大哥指点下,卡在这点上一个多月了,一直调试有问题!

2019-07-19 20:17发布

小弟最近在做一款芯片,用的是STM8S003的芯片做的,根据客户定制给的通讯协议接收外部信号特定的字节,然后写入eerpom中,现在主要是协议复位吗没办法识别,求高手指点下,谢谢!小弟用的是串口接收的,串口设置的是9位数据(+1位停止位)-250K的波特率,通讯协议也是按到9位数据(+1位停止位)-250K的波特率这样来的,目前就是对这个2S复位码没办法具体识别出来!
麻烦看到的给个指点,感激不尽!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
胡松松
1楼-- · 2019-07-21 20:48
spritels 发表于 2019-1-25 15:28
哇哦,很明显我的方法没有判断这个break的时间,所以只要是符合DMX数据格式的都可以接收,这就是所谓的非标准 ...

谢谢大哥怎么详细的讲解,感激不敬,你让我对DMX信号有了更深的了解,我纠结那个break的时长,是因为当我2种不同信号过来时,我需要辨别出接收模式,当2S信号来了的话,我要将数据保存到eeprom中,如果是标准的数据,我只要接收显示就好了,所以我才这么纠结的
spritels
2楼-- · 2019-07-21 23:35
 精彩回答 2  元偷偷看……
Sun_Fly
3楼-- · 2019-07-22 03:36
请发求助帖,谢谢
胡松松
4楼-- · 2019-07-22 07:27
spritels 发表于 2019-1-25 16:42
SOGA~原谅我一直没弄明白你的意思,原来你真的是要区分开两种信号...
鄙人的想法:设一个定时中断计数,比如 ...

正常情况应该是RX收到起始位才开始进入串口中断的,那没收到的话怎么进入串口中断开启定时器啊,我要在什么时候开启定时器呢?不太明白这里,之前我也是这样想的,但是不知道具体该在哪里开启,麻烦大哥指点下,谢谢
胡松松
5楼-- · 2019-07-22 13:22
 精彩回答 2  元偷偷看……
spritels
6楼-- · 2019-07-22 14:18
胡松松 发表于 2019-1-25 18:04
正常情况应该是RX收到起始位才开始进入串口中断的,那没收到的话怎么进入串口中断开启定时器啊,我要在什 ...

定时器不在串口中断开,而是程序运行就要打开...
我的意思是设一个计数值,比如定时器每100ms中断一次就让它加1,当串口没有中断过来的时候,这个值就会一直往上加,加到一定的数值你就可以判断为无信号输入的状态(当然它快溢出的时候你也要及时处理).当有串口中断过来,你判断到起始数据(第九位为0那个),你就将这个计数值清零.DMX信号的两个起始数据之间间隔是很短的,就算去到1S,那你这个计数值最多也就是计到10就会被清零.接收你说的这个信号也同理,2S的间隔最多也就计到20吧,这样判断这个计数值就可以知道来的信号是DMX还是你说的这个了...

一周热门 更多>