前言
最近由于学习需要,需要使用迪文串口屏与stm32做一个通讯测试实验。因为是刚接触这两种设备,在一开始的时候遇到了很多困难。好在网上资源十分丰富,CSDN的大佬们写的博客内容也十分给力,通过一段时间的学习摸索,最终完成了这个实验。在此将这个过程和程序分享给大家,希望能对将来有需要的人提供多一个参考。
一、实验目的
实验的目的很简单,就是通过开发板上的KEY0控制指示灯LED0的亮灭,同时迪文屏上也有一个指示灯和开关。两边开关对灯的控制是同步的,即无论哪边按下开或关,开发板和屏上的灯都会做出相同的反应,并且可以对打开的次数进行计数,并显示在屏上,可以对这个计数进行重置。
二、串口接收
串口接收使用的是IDLE空闲中断,可以在接收完一帧数据后产生这个中断,对于不定长度的接收十分管用。最初我是打算改写正点原子例程中的串口接收程序,他那里面有个对回车换行的判断,还有个接收完成标志位,不是那么好理解,花了几天看懂了,改写后是去掉了回车换行,但是只能实现对固定长度数据帧的判断,且代码逻辑上比较繁琐,因为我还很菜改的不好。后来想到这个IDLE中断,参考了网上一位先生的代码,移植到了我的程序中,完美的解决了这个问题。
原代码:[link](https://blog.csdn.net/phker/article/details/51925668).
总结
我用的方法比较原始,就是直接在接收到屏上按键的返回值后对其进行判断,然后发送相应的控制指令给屏,但是越简单的系统出错的几率也就越小,这样也是一种稳妥之举。
附上我的程序,还是有一些问题在里面的,欢迎各位大佬指正。
|
———————————————— 版权声明:本文为CSDN博主「东陈西酒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/jiangsir12/article/details/111731534