小总结持续更新!

                                               *关于GS32E系列FSMC的使用*
  前段时间捣鼓GD32国产芯片,还是支持一下吧,加油!![在这里插入图片描述](https://img-blog.csdnimg.cn/2019011511560952.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdWFuZHk2NjEy,size_16,color_FFFFFF,t_70)
       其实GD32和STM32硬件层面本质是一样的,兼容性比较好;软件上库函数虽然形式上有差别,但换了衣服嘛!但是多少在开发过程中还是要注意一些小的区别:
       1.我用的GD32E103VBT6这个型号,FSMC里对于驱动外部存储器给的内存映射空间为:
       ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190115131858507.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpdWFuZHk2NjEy,size_16,color_FFFFFF,t_70)

(注:此对比ST系列省去了bank区域的区分,缩小为其中一块64M)
2.记住一个比较鸡肋的关键点,那就是在驱动外部SRAM时需要使能FSMC地址\数据线的复用模式,就是由于它我搞了几天(限于初次使用,难免入坑),从GD32deetsheet可以体现:在这里插入图片描述
在这里插入图片描述
(注:地址线只有EXMC_16-EXMC_23,并没有找到其余复用管脚定义)
3. 所以在代码体现为:
/* configure EXMC NADV (PB7) */
gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7); //使用此管脚驱动外接反相器
nor_init_struct.address_data_mux = ENABLE; //开启数据地址线复用
(注:硬件电路相关就不上传啦!总之需要进行地址线数据线的复用需要进行反向并进行一定周期的延时)
先写这么多吧,有进展继续更新,有错误请直接联系我,共同交流学习(qq:1330178937)。

猜你喜欢

转载自blog.csdn.net/liuandy6612/article/details/86491326