oled屏的背面
屏幕我选的是1.3寸的oled模块,主要我之前也已经有心理准备了,知道会有重重困难,所以才没有搞单屏幕而是买模块,其次我确实比较懒,不用模块的话,要多焊几个电阻电容。之后还要涂胶水粘电路板上。总之就是调试起来非常不方便。
PCB电路板的原理图
这个是原理图,其中U1是STC单片机,P1是OLED屏幕的接口,采用的是SPI通信。P2是micro_usb接口,P3是程序烧录口,SW1是单片机的复位按钮。U2是CH340,U2中的RTS引出的那一坨电路是自动下载电路。所以实际使用中,其实P2和SW1用不上,只是留了个后手,万一自动下载电路失灵了,还能手动连串口工具下载,或者按按钮来手动下载。哦对了,C2我觉得0.1uf有点小,我觉得1uf或者10uf的会比较好,自动下载电路参考网上的,不过自己也稍微修改了一丁点儿。自动下载电路的作用不仅仅是能自动下载程序,我发现单片机上电后首次通信需要重启单片机,就好像重新下载单片机一样,而自动下载电路能让单片机自动重启。所以才需要增加自动下载电路。
PCB图
3D PCB正面
3D PCB背面
这是PCB图,线走的比较随意,也没啥特别注意的,元件都放一个面,另一个面是贴屏幕的。然后开3个窗,给屏幕模块上的电阻电容让位。详情请看 olde 背面那张图。
成品侧面
两个板子焊接点正面
两个板子焊接点背面
两个板子的孔对齐直接焊住。相当于两个板子拼在一起,这样也没多厚。
接下来讲讲和电脑通信的原理
通过网友提供的信息,我们能知道AIDA64用串口方式通信时,波特率为9600,起始位为1。
网友提供的信息
接着是设置AIDA64,让它能发送串口数据
点击文件-设置,然后设置如图
LCD端口决定了电脑会以哪个USB口发送数据
然后剩下的就是如何知道它发的是啥数据了。我用虚拟串口助手让电脑自己和自己通信,以此来抓数据。
虚拟串口助手
设置的AIDA64和抓到的数据
这是我抓到的数据,我们可以发现每个数据包都会以0XFE为开始,80是第一行,C0是第二行。之后就是ASCII码了,比如第一行,我第一个框框写的是C,对应的ASCII是0X43。第二行第一个是G,对应的是0X47。AIDA64可能原本就是为了和LCD单色屏而弄的数据。抓到了数据,就知道代码该如何编写了。
串口通信的代码
oled初始化代码
写代码时,能抄就抄,比如oled代码。不能抄的就手撸。比如串口通信中断的代码。
文章到这里就结束了,第一次写文章,思路可能有点乱,请轻点骂。
#免责声明#
①本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
②若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
③如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间解决!
④本站部分内容均由互联网收集整理,仅供大家参考、学习,不存在任何商业目的与商业用途。
⑤本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与任何商业和非法行为,请于24小时之内删除!