【高手问答】第1期——朱兆琪在线解答单片机C语言编程

2019-07-15 19:17发布

Elecfans论坛高手问答第1期
朱兆琪在线解答单片机C语言编程
本期高手问答(6月30日-7月6日)我们请来了 @zzq宁静致远  为大家解答关于单片机C语言编程方面的问题。

@zzq宁静致远  朱兆琪,我相信大家不陌生。目前深圳市馒头科技有限公司总经理,在论坛连载多个技术贴,从C语言到STM32到蓝牙4.0,引起大家的强烈反响,熟知嵌入式开发。著有《嵌入式Linux开发实用教程》一书,关于朱兆琪,点此了解更多


Elecfans高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就单片机C语言编程方面问题向 @zzq宁静致远 提问,请直接在回帖中提问。


为了鼓励大家踊跃提问,特准备两本《嵌入式Linux开发实用教程》作为幸运奖品,届时将有 @zzq宁静致远 从所有提问者中抽取赠予此书。
QQ截图20140702161646.jpg

QQ截图20140702161748.jpg
*****************问答精华***********************



Elecfans高手问答往期回顾:【高手问答】12—韦东山老师VS嵌入式LINUX应用开发完全手册【高手问答】11——与张飞老师一起成为硬件电路设计的expert【高手问答】第10期—宋雪松老师l手把手教你学51单片机【高手问答】第9期——张工带你玩转STM32问答【高手问答】第8期——社区之星李工为你的ARM问题解惑【高手问答】第7期——与行工前辈一起畅谈DSP【高手问答】第6期—— 李工解答PCB设计【高手问答】第5期——STM32硬件问答【高手问答】第4期——与社区之星王工聊聊labview设计【高手问答】第3期——阿东带你走进硬件电路设计【高手问答】第2期——阿东带你走进fpga的逻辑编程设计【高手问答】第1期——朱兆琪在线解答单片机C语言编程





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
小萃米
1楼-- · 2019-07-15 22:25
ModBus RTU 协议上规定其帧数据有:地址码、功能码、数据、CRC,并没有定义帧起始、帧结束,资料上说,以3.5个字符作为界定帧起始、帧结束。那这个在程序上怎么实现呢?
看了一些别人的帖子,有说如下解决:
    在下位机上,启动一个定时器,定时器中断时间大于3.5个字符的时间,每次接收到一个字节数据,都会将定时器清零,若超过该时间,就会发生定时中断。
对此,我还是不明白,如下:
   1. 这个3.5个字符传输时间,是传输3个bit时间,还是3个byte的时间,或者是其他的?手册上写的是3个char,这个char指的是什么?
   2. 不明白怎么界定3.5字符超时限制。如果这个3.5字符时间是大于传输一个字节的时间,那我可以在每次接收到一个字节是数据,都对定时器清零,当没有数据传输时,定时器会产生时间中断,这样能界定这个超时,从而判断帧传输结束。但是若3.5字符时间是 小于 传输一个字节的时间,这种方法就实现不了?

   另外,在上位机 VC上怎么实现?上位机上用定时器,其优先级很低,是不可以作为超时限制的,其二,VC上需要调用API,然后做差值,来确定精确的 ms 级别时间。但是该从什么时候开始调用API呢?也就是说,我从什么时候开始判断,没有字符接收了,然后调用API,获取时间来判断是否超时3.5字符?

求朱老师 @zzq宁静致远  指点
IEXWER
2楼-- · 2019-07-15 23:33
关于C语言单片机编程有哪些思想是平常书本、视频教程学习中接触不到的。 @zzq宁静致远
zzq宁静致远
3楼-- · 2019-07-16 02:14
本帖最后由 zzq宁静致远 于 2014-7-1 11:36 编辑
小萃米 发表于 2014-6-30 18:32
ModBus RTU 协议上规定其帧数据有:地址码、功能码、数据、CRC,并没有定义帧起始、帧结束,资料上说,以3. ...

1.3byte
2.如果低于3.5字符时间,说明帧还没有结束(这个是modbus RTU协议规定的)
另外:3.5字符时间只是最低时间,并不需要准确的,所以,VC上面也是可以实现这个定时的,只要误差不会超过10ms,都是没有问题的

zzq宁静致远
4楼-- · 2019-07-16 05:51
 精彩回答 2  元偷偷看……
木頭瓶子
5楼-- · 2019-07-16 08:40
@zzq宁静致远 朱老师一个关于混合编程的问题:如果我要在汇编程序中加入C语言段怎么处理?如果要在C语言段里加入汇编又要如何处理?
yangjiawei1223
6楼-- · 2019-07-16 09:22
看别人写的c程序中把带返回值的函数,不同情况返回三种值return 0,return 1,return -1。但是整个过程好像没调用这些值。这样写是为什么啊?

一周热门 更多>