历史上的今天
返回首页

历史上的今天

今天是:2025年01月11日(星期六)

2021年01月11日 | 迁移微雪2.9寸电子墨水屏代码到Stm32F407上

2021-01-11 来源:eefocus

墨水屏是从立创商城上买的,正常价格大概100元左右。  商城活动 大约 40块钱入手

这是刚来的时候的样子,排线让我弄丢了,直接拆了插槽 把杜邦线焊上去了、、、、

这是 运行demo 时候的样子

墨水屏看起来真的很好看。  进入正题,代码的迁移:

毫无疑问第一步肯定是修改 IO了,我在 readme 文件里面看到了引脚的定义。 这款屏一共用到了六个IO 其中四个是通用IO

两个是作为 SPI协议的 MOSI 和CLK线的  虽然这款屏是标准的 四线SPI,但是屏幕貌似是不需要给单片机回传什么数据的,所以我们只是需要用到 MOSI 和clk线,当然 CS 和GND 也少不了的。在STM32F4的程序中,我借鉴了 正点原子的 SPI实验,其中对于SPI的配置是用的 SPI1  对应IO 分别是 PB3 PB4 PB5 ; PB3是CLK;  PB5 是 MOSI ; PB4 暂时没有用到。

通用IO方面没什么好说的,就是拉高拉低,我在最小系统板上面选取了几个 相对不是很重要的,距离PB3 PB5 比较近的IO

避开了可能用到的 PD2 和PD5  我选择了 PD0 PD1 PD3 PD4 这四个通用IO  作用如下

初始化代码如上,其中要注意的是 busy 引脚是输入引脚, 单片机需要读取这个引脚的状态判断 墨水屏是否忙

其余引脚是输出引脚。

针对于官方给出的 一些IO操作的部分,我给修改成了 寄存器的位带操作。

因为我只用一款屏幕所以没有去考虑后期的迁移等问题。。。  这里只是简单粗暴的修改了最底层的 IO操作代码

这里  有一点和官方的有一点区别 

针对于官方代码的 UBYTE  我没有使用 宏定义去修改 而知直接查找 替换。。。   这一点确实有一点欠考虑了   以后代码可能会比较混乱吧

官方的debug 语句 我感觉用不上,也懒得去删除 于是  我用了这种方法

这里切记一点就是不要去替换 整个工程!!!这里切记  会出很多错误的! 你猜我咋知道的。。。

在处理完了这一部分的问题以后 接下来的问题就是  官方代码的编码风格。

这样的编写代码的方式,我一开始 并不知道怎么去解决,只能 一个一个的去改,将变量的声明拖到代码的头部去。在写这篇博客的时候才发现了原来是这里!

官方的代码,勾选了C99 的格式、、、、    而且编译起来确实是没有问题的

当我发现 可以通过勾选这个 C99 解决问题的时候我已经完成了 将变量声明拖到 函数前面去。  这算的上是一个新的发现。

接下来 我又遇到了报错

bing 上搜索了一下  发现了我想要的答案   解决方法连接

这个问题解决了,问题产生的原因大概就是因为官方代码里面的调试部分 printf 出了问题。

接下来的一个问题时程序不运行发现程序卡死在串口的发送部分,  得了  调试屏幕用到的串口还没初始化

初始化完了串口 程序总算是可以跑起来了

串口调试起来还确实是挺方便的,我之前一直都用OLED作为调试工具的,看样子以后要多试试串口

接下来出现的问题是这个

通过查找问题 错误提示 我找到了问题所在,官方代码还非常好心的提示了可能会有堆内存不够的情况

我还特意去搜了一下 堆和栈的区别 

很明显 这里是 malloc 肯定用的是堆内存   heap 

总结: 今天遇到的bug  主要是 程序的编译部分, C99  这个问题可以避免

另外就是 UBYTE  转换成 u8  今天做的欠考虑了  可以直接宏定义转的

然后就是堆栈  堆是程序员 可以分配的,栈是编译器操作的

欢迎指出问题,如果您在迁移代码时候遇到了问题我也会尽量帮忙。

后续可能会考虑迁移一些其他的代码进去,比如显示 double HEX bin 之类的数字,暂时还是就这样吧,有需求了再去尝试


推荐阅读

史海拾趣

Daniel Woodhead公司的发展小趣事

随着公司业务的不断发展壮大,Daniel Woodhead公司开始关注社会责任和可持续发展。公司积极参与公益事业,捐赠资金和技术支持教育、环保等领域。同时,公司还注重环保和节能技术的研发与应用,努力减少生产过程中的环境污染和资源浪费。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实基础。

Deutronic Elektronik GmbH公司的发展小趣事

为了进一步提升竞争力,Deutronic Elektronik GmbH开始实施全球化战略。公司在美国和中国设立了子公司,并通过并购等方式加强了在欧洲和亚洲市场的布局。这些举措不仅增强了公司的市场影响力,还为公司带来了更多的资源和优势。通过全球化战略的实施,Deutronic Elektronik GmbH逐渐成为一家具有全球影响力的电子科技企业。

Adamant Co Ltd公司的发展小趣事

随着电子行业的快速发展,市场竞争日益激烈。Adamant Co Ltd面临着来自同行的压力以及新兴技术的挑战。为了应对这些变革,公司进行了战略调整,加大了对研发和创新的投入。同时,公司还积极拓展新的业务领域,如物联网、人工智能等前沿技术。这些战略调整使得Adamant Co Ltd在激烈的市场竞争中保持了领先地位。

FCT electronic公司的发展小趣事

随着技术的不断成熟和市场需求的增长,FCT electronic公司开始寻求市场扩张和多元化发展。公司决定将产品线拓展至刚挠结合板和挠性加热器领域,以满足不同客户的需求。同时,FCT electronic公司还积极开拓国际市场,通过参加国际展览、与海外企业合作等方式,逐渐在全球电子行业中树立了品牌形象。

华瓷(Chinocera)公司的发展小趣事

在华瓷的发展历程中,一个关键的转折点是在XX年代初,公司成功研发出了一种新型陶瓷材料,这种材料不仅具备优异的耐高温、耐腐蚀性能,而且在电子元器件的应用中表现出了极高的稳定性和可靠性。这一技术突破使得华瓷迅速在电子行业崭露头角,众多知名电子品牌开始与华瓷合作,使用其陶瓷材料生产高性能的电子元器件。

Datalogic公司的发展小趣事

在2022年,Datalogic推出了PowerScan 9600系列工业手持式扫描枪。这款扫描枪具有坚固的设计、IP67等级防护和出色的性能,能够在严酷的工业环境中稳定运行。PowerScan 9600系列的推出进一步提升了Datalogic在电子行业中的产品竞争力。

问答坊 | AI 解惑

初探笔记本电脑电源管理

通过使用电池实现在任何地方的移动使用是笔记本电脑区别于台式机的一个重要特征,相比起手机和PDA的耗电量,笔记本电脑的电池是很“可怜”的,要负担大尺寸的TFT,高速的硬盘,高主频的CPU和越来越大的内存,因此电池使用时间和PDA或者手机是不能相 ...…

查看全部问答>

基音调整的语音分析方法

文 摘 提出了一种新的以基音周期为基础的分析方法。对语音信号,首先估计基音轨迹,即基音随时间的变化规律。然后根据这一轨迹对语音信号进行“基音调整”,将原始的、具有时变基音周期的信号转化为一个具有恒定基音周期的信号。这样就可以采用时 ...…

查看全部问答>

nandflash问题,高手指点。

我用cypress的68033做了一块板子,控制nandflash实现一个u盘。 在用三星kf1g08u0a型号的flash时,功能正常,可以读写,格式化。 当换成另一型号的kf1g08u0b的flash时就不行了,不能格式化,可以看到盘符。 不知道什么原因,flash在固件里需要配 ...…

查看全部问答>

EVC安装问题

我第一次安装后有点小问题,然后我将它御载了,然后装了一个VS2005中文版,然后在装EVC,竟然发现注册码过不了,最后我重装了一次系统,还是注册码过不了,请大家给个建议,急等!!出现的提示如下:…

查看全部问答>

刚忘记给分了,还是zbuf的问题,求助

前几天,在跑程序的时候遇到一个zbuf的异常,vxworks打印的调用链如下: data storage Exception current instruction address: 0x0050cb60 Machine Status Register: 0x00029230 Data Exception Address Register: 0x0069bf38 Condition ...…

查看全部问答>

请问谁做过gpio的开发

    是这样的 ,有个读写器有gpio接口,它是10个接口, 另外我想用这个东西来控制三色报警灯(三个颜色,另外可以报警)。 请问这个东西如何接线,来控制我灯的四个状态。      gpio有四个输入口和四个输出口,我 ...…

查看全部问答>

[极度困惑]模拟键盘输入

本人写了一段代码,能把数据往当前焦点处输入:   INPUT  Input;   for(    i=0  ;  strInfo!=\'\\0\'  ;  i++  )//strInfo已经付值   ...…

查看全部问答>

STM32能不能超频啊

                                 我把主频超到128M还是跑的挺欢的呢…

查看全部问答>

求MXD2020E资料和用法

本帖最后由 paulhyde 于 2014-9-15 08:59 编辑 MXD2020E输出X,Y怎样判断他的角度变化  …

查看全部问答>

exiao的Beaglebone外围电路设计决赛—试用周计划

还没使用过Beaglebone,可能在使用过程中会出现各种问题,希望各位高手能多多指点。 我的周计划如下: …

查看全部问答>