从9月18日开始调试串口接收程序,拷贝、打印示例代码,分析、调试,折腾了几天都没有弄清楚是如何接收串口数据的。然后又转为调试SPI,照例又是拷贝、打印示例代码,外加在论坛搜索别人的经验,又是两三天过去了,还是一事无成。最后只好自己写代码模拟SPI接收,一弄又是几天,进展缓慢。期间nmg版主还主动询问项目进度,知道我的困境后鼓励我发贴求助,版主又在群里邀请大家帮助,许多热心坛友帮忙出主意、想办法。在大家的帮助下,又经过两天的调试,终于成功地接收到51单片机发送的数据了。这对众多坛友来说也许连小菜一碟都算不上,但对我这个初学者来说无疑象翻过了一座雪山。总结经验主要是不能一次性将代码都写好,应该写一部分就调试一部分,完成后再继续写下一步的代码,步步为营才好调试排错,而我经验不足,写好一大堆代码再调试,在有限的屏幕上查看代码,非常吃力,最后自己的糊涂了。

点赞  2018-9-29 20:46
    昨天完成了软件模拟SPI通讯模块的调试,成功地接收到了51单片机发来的数据,紧接着开始调试控制模块的代码。控制模块的代码是之前在调试通讯不顺利时,为了转换情绪,缓解大脑思维,临时搁置通讯的调试来写的。现在SPI通讯基本完成,顺理成章就来调试控制模块的代码。
    首先是将接收到的字符信息转换为数值,这本来并不复杂的问题也花了我约两个小时才完成。然后是模拟水位图(屏幕左边),这是按照仪器安装高度(屏幕左上角显示的数值)为总高,根据当前水位来显示柱状图,算法是用当前水位除以安装高度再乘以48(即屏幕列向点阵),得到需要显示的点数。我在调试时这个数值一直都为0,百思不得其解,后来才反映过来应该先乘后除,因为先除的结果是小于1的小数,我定义的变量类型是无符号整型,所以中间值是零,最后换为先乘后除才达到目的。
    控制模块的调试相对容易些,加上代码是先前基本写好的,所以一天多时间就顺利完成了。现在整个项目大部分已经完成,机房的机组控制线路是前两年就完成了的,当时是用WIFI继电器组,通过互联网用手机远程就可以调整进水阀门开大或关小、机组启动或紧急停机,现在只要将这个自动控制部分添加进去就行。
    下面发几张照片:
这是主控制模块调试的情景:

主控制模块调试完成1.jpg

    这是显示屏,最左边是模拟显示当前水位的高低,左上角显示超声波检测仪器安装的高度,左下角显示最低水位0m,当前水位则显示在中间部位,正常水位时显示的中间,偏高水位和超高水位则靠上显示,偏低水位和超低水位则靠下显示,同时在屏幕中间靠右位置会用汉字显示。正常水位时没有输出控制的操作,偏低水位时,LED2会熄一秒左右(拉低信号),超低水位则熄两秒左右(控制进水阀门关闭的时间长一点),偏高水位和超高水位的控制原理相同,只是控制LED3,现场使用时只需要将这两个引脚接到相应的中间继电器上。

主控制模块调试完成2.jpg    

    当初调试SPI通讯时,为了排除杜邦线的问题,直接从引脚排插上焊接连线,以便逻辑分析仪取信号,所以开发板上长了一个小辨子,现在调试完成了,这个小辨子也该剪掉了。

主控制模块调试完成3.jpg

    下面是移除了小辨子的开发板:

主控制模块调试完成4.jpg

    为了方便去现场调试,特地做了找了有个小盒子,给开发板安个家。

主控制模块调试完成5.jpg

    开发板、辅助板、屏幕各就各位,有了临时的住处,只不过因为盒子不透明,屏幕有点模糊,先将就使用吧。

主控制模块调试完成7.jpg

主控制模块调试完成8.jpg

主控制模块调试完成9.jpg
  • 主控制模块调试完成6.jpg
点赞  2018-9-30 17:28
    今天是国庆节,项目的主要功能已经基本完成,开始进行完善、优化工作,参照ljj3166、tinnu等老师的帖子,仔细查看和调整了我的串口接收代码,终于能够顺利地接收到串口数据了。下一步再看看SPI1的接收功能能否调试好,争取能无线通讯也调试完毕。
点赞  2018-10-1 19:09
项目基本完成,整理照片、撰写项目总结、录制视频,花费了4-5天的时间,今天终于将作品提交了。
点赞  2018-10-8 13:23
向你学习……
点赞  2018-10-9 14:04
致敬老工程师
点赞  2018-11-6 15:03
引用: ketose 发表于 2018-10-9 14:04
向你学习……

我还在入门过程中,还需要向你们大家学习!
点赞  2018-11-6 15:25
引用: 张登科 发表于 2018-11-6 15:03
致敬老工程师

谢谢!请多多指教。
点赞  2018-11-6 15:25
12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复