完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前言
最近由于学习需要,需要使用迪文串口屏与stm32做一个通讯测试实验。因为是刚接触这两种设备,在一开始的时候遇到了很多困难。好在网上资源十分丰富,CSDN的大佬们写的博客内容也十分给力,通过一段时间的学习摸索,最终完成了这个实验。在此将这个过程和程序分享给大家,希望能对将来有需要的人提供多一个参考。 一、实验目的 实验的目的很简单,就是通过开发板上的KEY0控制指示灯LED0的亮灭,同时迪文屏上也有一个指示灯和开关。两边开关对灯的控制是同步的,即无论哪边按下开或关,开发板和屏上的灯都会做出相同的反应,并且可以对打开的次数进行计数,并显示在屏上,可以对这个计数进行重置。 二、串口接收 串口接收使用的是IDLE空闲中断,可以在接收完一帧数据后产生这个中断,对于不定长度的接收十分管用。最初我是打算改写正点原子例程中的串口接收程序,他那里面有个对回车换行的判断,还有个接收完成标志位,不是那么好理解,花了几天看懂了,改写后是去掉了回车换行,但是只能实现对固定长度数据帧的判断,且代码逻辑上比较繁琐,因为我还很菜改的不好。后来想到这个IDLE中断,参考了网上一位先生的代码,移植到了我的程序中,完美的解决了这个问题。 总结 我用的方法比较原始,就是直接在接收到屏上按键的返回值后对其进行判断,然后发送相应的控制指令给屏,但是越简单的系统出错的几率也就越小,这样也是一种稳妥之举。 |
|
|
|
只有小组成员才能发言,加入小组>>
3311 浏览 9 评论
2994 浏览 16 评论
3493 浏览 1 评论
9058 浏览 16 评论
4087 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
598浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 22:41 , Processed in 0.944452 second(s), Total 48, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号