(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设置成快速。这点我在实践中感到非常关键,但很少有人给以明确说明,网上的代码也没这么做。
奉上我的代码,我在其中对设置的参数进行了校验。
---------------------------------
看了别人的代码,替换操作方式。
STM32的I2C我是怕了,没有状态标记,中断方式不知道怎么搞,没胃口了。
以前花过一段时间研究I2C协议,搞了个中断操作,在STM32面前无用武之地了。
有人建议用DMA方式。我的这个项目没必要折腾这个,不想做板子了,真想换成SPI驱动的EEPROM。
问题我也没解决,找到是什么地方引起的错误,替换掉就好了。
一周热门 更多>