发表我的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条回答
shaotianyu12
1楼-- · 2019-07-20 23:11
mark一下
正点原子
2楼-- · 2019-07-21 04:12
顶楼主.
绝无神
3楼-- · 2019-07-21 09:17
 精彩回答 2  元偷偷看……
thcsgpxgy
4楼-- · 2019-07-21 11:43
楼主大才,我也正在搞这个,不过用的是中断方式的,也引起了HardFault_Handler ,请问你是怎么解决的?
maninman1981
5楼-- · 2019-07-21 16:49
回复【5楼】thcsgpxgy:
---------------------------------
看了别人的代码,替换操作方式。
STM32的I2C我是怕了,没有状态标记,中断方式不知道怎么搞,没胃口了。
以前花过一段时间研究I2C协议,搞了个中断操作,在STM32面前无用武之地了。
有人建议用DMA方式。我的这个项目没必要折腾这个,不想做板子了,真想换成SPI驱动的EEPROM
问题我也没解决,找到是什么地方引起的错误,替换掉就好了。
thcsgpxgy
6楼-- · 2019-07-21 18:25
 精彩回答 2  元偷偷看……

一周热门 更多>