1
5
新手上路
使用道具 举报
1万
7万
11万
管理员
eric2013:先保证你的18B20程序在裸机,不使用RTOS,也不使用emWin的时候没问题。 然后就是18B20最好1-2秒更新一次即可,不太频繁,因为这个器件时序要求比较严格,中断不能有打断,所以读取前后做个开关中断或者调度锁功能。 (2017-08-03 13:31) 
煜煜啊:你好,18b20在裸机是能正常使用的,并且我写在emwin上偶尔也是可以显示出来,只是中间会多出一个比较大的数据,我也不知道是哪里来的,是不是我程序问题?  (2017-08-03 13:35) 
eric2013:因为这个器件时序要求比较严格,读取器件不可被其它任务打断,所以读取前后做个开关中断或者调度锁功能。 (2017-08-03 13:40) 
8
59
83
初级会员
11
68
198
煜煜啊:您能详细讲一下开关中断或者调度锁功能的原理么?因为这个我也没怎么接触过这些。 (2017-08-03 13:45) 
邵少少:建议用消息处理,计算出温度后给窗口发消息,不要开那么多定时器,窗口回调函数内处理这个消息并显示就可以了 (2017-08-03 14:20) 
thinkself:你的buf要清零 啊,memset(buf,0,sizeof(buf)) (2017-08-04 10:23) 
煜煜啊:清零是在传送数据之前还是之后?我感觉中间数据是从温度值返回函数上来的  (2017-08-06 16:01) 
42
71
eric2013:用sprintf不用清零。 (2017-08-07 01:37) 
thinkself:不懂啊 ,是buf每次填充字节不变吗?完全覆盖吗? (2017-08-07 09:23) 
本版积分规则 发表回复 回帖后跳转到最后一页
|小黑屋|Archiver|手机版|硬汉嵌入式论坛
GMT+8, 2025-8-19 17:33 , Processed in 0.050264 second(s), 24 queries .
Powered by Discuz! X3.4 Licensed
Copyright © 2001-2023, Tencent Cloud.