江科大0.96寸OLED STM32F1代码移植到STM32F407ZGT6开发板的一些问题

问题1

        由于江科大0.96寸OLED IIC代码是用STM32F103C8T6作为主控,其代码是针对CPU主频是72MHZ的,而STM32F407ZGT6的CPU主频是164MHZ,直接移植使用的话会导致OLED不亮,且代码不报错。

解决办法

在OLED写SCL高低电平和OLED写SDA高低电平成员函数处增加若干延时,使其时序延长。

我这里加的2us的时延(试了一下,1us也可以,且刷新频率变高了),其他不同主频的芯片可以试着更改延时。

问题2

        STM32F1系列的代码不能直接搬移到STM32F4系列代码上使用,这是因为一些GPIO口的初始化有略微的变化。

       解决办法

        那么,针对《江科大0.96寸OLEDSTM32F1代码移植到STM32F407ZGT6开发板》在GPIO初始化地方,进行下面修改即可。

这里的一定是输出模式,但是可以是开漏也可以改成推挽。记得这里初始化的GPIO和上面OLED写SCL高低电平和OLED写SDA高低电平成员函数的GPIO对应噢,不要忘记改上面的了。

问题3

        显示中文有时候会显示方框里加一个问号'?'。这是因为在索引汉字的时候没用索引到导致只能显示作者(江科大)设置的最后一个字符(方框里加一个问好‘?’)。这其实很简单,是我们keil里设置的编码字符显示问题导致的,一个是UTF-8或者是GB2312,一定要选择对应的编码。

解决办法        

        那么,在江科大OLED代码里,有两种编码字符显示的代码,一个是UTF-8,另一个是GB2312。

更改keil的字符编码:

江科大OLED代码对应更改:

       如果更改之后,还是不显示汉字或者发现OLED的某些相关文件字体编码和他其的不一样(这里指的是没有随着keil字符编码更改而更改的情况)。

        那么,我们直接从源头解决问题,从江科大实例代码copy一份你想要的编码代码。例如,使用GB2312。

代码路径:0.96寸OLED显示屏\01-程序源码\OLED-V1.2\GB2312\01-OLED功能函数测试-4针脚I2C接口\Hardware,将这四个文件放到你的工程里就好了。

结语

这样就能顺利的显示辣 ~.~

致谢

感谢B站江科大的无私奉献。@江协科技         jiangxiekeji.com

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值