这一程序要达到的效果是:当触摸板上一个触摸按键时,OLED显示几号键被按下了。这么简单,纠结在那里呢?UFUN提供的例程有Keil4和Keil5的,之前装的是Keil4版本,打不开Keil5创建的例程。那也也没关系啊,把需要的文件和段落复制过来合成就好了。开始就这么想的,这可闹麻烦,本身对一串串英文出错信息感冒,才一直没把Keil用熟练。想着各个该复制的函数、库文件都复制到位了。编译一下吧,各种出错、各种没响应,直到把脑壳弄疼。最后索性狠狠心,下载安装了Keil,反过来把做过的Keil4的资源复制到Keil5例程模板里。还是一路的不顺。首先遇到的的一个问题是明明编已完成,没错了,偏偏下载时来了一招:“程序文件不是0x8000000和0x20000000区域的”
多次扰人后才想到去百度下,终于找到了有效的解决办法:进入Options For Target,注意Read/Only Memory Areas里面的IROM1的Start地址是否为0x8000000。不知Keil5工程为什么没设好这个起始地址,设好了就解决了。
程序通过复制拷贝其实很简单就能实现了,在触摸按键例程的基础上把OLED屏相关函数复制过来,展示一下主程序:
在程序调试中两个问题老是报错:一个是两个工程中delay.c文件是不一样的,差一个DelayInit(),延时函数的名称也不一样,名字差一个下划线。这个还好解决。另一个讨厌了,半天找不出原因来:Error: L6200E: Symbol SystemCoreClock multiply defined (by system_stm32l1xx_1.o and system_stm32l1xx.o).平白无故多出了system_stm32l1xx_1.c文件,三个函数多重定义错误,工程文件夹里翻遍了也找不出来。最后,还是百度找出了应对之策:Project—Manage—Project Items,去除system_stm32l1xx.c文件,问题解决。
终于算大功告成了,展示一下运行效果,另外原先没加清屏指令,满屏出现了星空效果,而不影响字符显示,收获了一个意外,没拍下来,以后或许能用上。
最后还是漏了一条,前面这个ISP下载的跳线帽实在太小了,还容易插到第2列造成USB电源短路,有点危险。终于忍受不了,把两个引脚连出来加了一个自锁按压开关,下载调试方便了很多呐。
附件:OLED响应触摸按键源程序 https://mbb.eet-china.com/download/20410.html
作者: lyyinhe_xi, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-218568.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
curton 2019-8-28 22:14