发表我的STM32F407ZGT6战果,主要是一些底层驱动,拿出来让兄弟们少走弯路。

2019-07-20 17:16发布

 (1)AT24C512 I2C驱动,这个代码我也是参照了别人的。没想到这个搞不好也可以引起 HardFault_Handler , 贼难找, 苦不堪言。
     主要参照:http://www.amobbs.com/thread-3636005-1-1.html
(2)SSD1963 FSMC 驱动
    这主要是没仔细研究SSD1963的手册。另外,其手册有2个版本,如果你不幸下载了旧版本的,那基本要注定悲剧,对着别人的代码注释看越看越糊涂。
    很多人说SSD1963不稳定,我觉得基本是初始化没搞定。我现在怎么搞都没问题。但我最终的方案是用SRAM做全屏缓冲,这样即掩饰了刷屏慢的缺点也没了拉屏的闪烁感。
    SSD1963在PLL初始化前,请将FSMC初始化为慢速状态。如果SSD1963的晶振是10M,在PLL锁定前只能以5M以下的速度对寄存器进行操作。
    初始化完成后,此时SSD1963的时钟可以配置成120M,再将FSMC设置成快速。这点我在实践中感到非常关键,但很少有人给以明确说明,网上的代码也没这么做。
    奉上我的代码,我在其中对设置的参数进行了校验。          
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
maninman1981
2019-07-21 16:49
回复【5楼】thcsgpxgy:
---------------------------------
看了别人的代码,替换操作方式。
STM32的I2C我是怕了,没有状态标记,中断方式不知道怎么搞,没胃口了。
以前花过一段时间研究I2C协议,搞了个中断操作,在STM32面前无用武之地了。
有人建议用DMA方式。我的这个项目没必要折腾这个,不想做板子了,真想换成SPI驱动的EEPROM
问题我也没解决,找到是什么地方引起的错误,替换掉就好了。

一周热门 更多>