PK 使人进步:晒晒你的串口程序

[复制链接]
11726|61
草履虫 发表于 2011-11-21 23:18 | 显示全部楼层
LZ的程序是程序PK里的最差的了.中断处理的风格不可取.
寅辰思瑜 发表于 2011-11-22 08:40 | 显示全部楼层
理解有点难度也....
alaic123 发表于 2012-11-19 11:30 | 显示全部楼层
观摩学习
liaorx 发表于 2012-11-19 11:42 | 显示全部楼层
本帖最后由 liaorx 于 2012-11-19 11:55 编辑

一点小建议,如果有数据丢失,怎么办?代码中碰见异常,就直接转到HEAD了。在这种情况下,如果tail丢失了呢?那么下一个包的头就会被当作错误的tail丢弃,一旦这样,后面的一整个包都会被丢弃。也就是说,LZ的程序在理想情况下工作的很好,但是一旦通信出现少量问题,LZ的程序会把少量问题放大。考虑到程序的健壮性,我认为应该修改一下接收数据的处理,这个状态机不是单线的,而是有多种分支的。另外,接收数据的处理放在中断里面,恐不可取。最后结语,LZ已经在向专业的路上走了,不过可以更专业一点。最后,谁可以告诉我怎么换行啊,编辑里面换行了,发上来之后就没有了,太难看了。
jimodunanhua 发表于 2012-11-19 11:42 | 显示全部楼层
多多学习
ayb_ice 发表于 2012-11-19 11:53 | 显示全部楼层
变量应该用结构体表示,可读性强点
dqyubsh 发表于 2012-11-19 15:34 | 显示全部楼层
直接modbus的飘过……
lb0577 发表于 2012-11-19 16:42 | 显示全部楼层
学习ing
abtc1130 发表于 2012-11-20 21:33 | 显示全部楼层
最近在用,正好研究对比一下
hnruijie 发表于 2012-11-21 08:49 | 显示全部楼层
看看啊
dongshan 发表于 2012-11-21 19:16 | 显示全部楼层
真复杂,我用的是keil例程自带的,写的非常好。
liujq7419 发表于 2012-12-15 18:44 | 显示全部楼层
能敢于贴出来就是勇气,经专家的指点便是进步,学习啦 !不胜感谢!
lihaolongli 发表于 2012-12-17 12:48 | 显示全部楼层
好贴留名,强势围观!
阮天宇00 发表于 2012-12-17 13:12 | 显示全部楼层
我第一次看郭教父的书,就写了一段,后来要用就直接粘贴复制~
不过没这么复杂啦~
后来又几次面试,都有考到,要我默写,初始化,我都没写出来~
直接用汉语写的~哈哈~
coody 发表于 2012-12-17 16:23 | 显示全部楼层
串口我基本都错成类似电脑那样的,中断只管接收和发送,不处理数据,那是应用层的事。
所以,我的串口接收或发送,一般就10来行程序。
储小勇_526 发表于 2012-12-17 17:24 | 显示全部楼层
正好最近在研究PIC写串口程序,O(∩_∩)O哈哈~
海川先生 发表于 2012-12-17 21:20 | 显示全部楼层
先回复,再看代码
海川先生 发表于 2012-12-17 22:11 | 显示全部楼层
mark,明天接着看
x1k2w3 发表于 2012-12-18 17:39 | 显示全部楼层
厉害!!!!!
海川先生 发表于 2012-12-18 21:34 | 显示全部楼层
  1. ********************************/
  2. /* 函数名称:GetFrmData
  3. /* 说 明:从数据包中取出数据域
  4. /********************************/
  5. void GetFrmData(unsigned char *pDat)
  6. {
  7. unsigned char i;
  8. if(gudTail == gudHead) return;
  9. for(i = 0; i < 4; i++)
  10. {
  11. pDat = GetData();                                  //少了*号???
  12. }
  13. }

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

本版积分规则

快速回复 在线客服 返回列表 返回顶部