作为初学者,我看的是原子的视频,用的是stm32f103vet6的板,所以这个问题纠结了好久,终于在今天解决了,虽然只是第一步,但是已经迈出第一步了。在这里分享给有需要的同学们,祝你们好运。

1、FSMC的其他引脚

关于fsmc的介绍,我就不介绍那么多了,网上已经有好多了,我这里只说两句话

第一:

总感觉这句话才是我们新手想用的。

第二:

第二句话总感觉看不懂,其实我也不是很懂。

下面贴上这些引脚的程序,你们就会清楚多了

//PORTD复用推挽输出    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_14|GPIO_Pin_15;                // //PORTD复用推挽输出  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;          //复用推挽输出   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOD, &GPIO_InitStructure);    //PORTE复用推挽输出  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;              // //PORTD复用推挽输出  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;          //复用推挽输出   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOE, &GPIO_InitStructure); //上面包括了fsmc的WR、RD、DB0-DB15的定义   不信的可以去对比看看//   //PORTG12复用推挽输出 A0      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_11;   // //PORTD复用推挽输出  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;          //复用推挽输出   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOD, &GPIO_InitStructure);  //这个为什么要分出来定义  我也不清楚   以后能搞懂再分享给大家//这两个也是至关重要的  PD7就是所谓的RS   //   PD11就是那个所谓的FSMC_A[0]有关  也就是那个NE1就是控制Bank1在第一块的控制端//也就是vet6只有一个Bank1的原因  它只有一个控制端   个人觉得有什么不对的地方见谅

定义好这些引脚   离成功就不远了(CS引脚也要定义好,因为我这块板的原因,CS不用定义)

2、FSMC的定义

这个定义根据原子的程序,就修改一下Bank1的位置,还有使能那个,其他地方没什么问题

readWriteTiming.FSMC_AddressSetupTime = 0x01;    //地址建立时间(ADDSET)为2个HCLK 1/36M=27nsreadWriteTiming.FSMC_AddressHoldTime = 0x00;  //地址保持时间(ADDHLD)模式A未用到   readWriteTiming.FSMC_DataSetupTime = 0x0f;      // 数据保存时间为16个HCLK,因为液晶驱动IC的读数据的时候,速度不能太快,尤其对1289这个IC。readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;readWriteTiming.FSMC_CLKDivision = 0x00;readWriteTiming.FSMC_DataLatency = 0x00;readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;   //模式A writeTiming.FSMC_AddressSetupTime = 0x00;    //地址建立时间(ADDSET)为1个HCLK  writeTiming.FSMC_AddressHoldTime = 0x00;    //地址保持时间(A      writeTiming.FSMC_DataSetupTime = 0x03;      数据保存时间为4个HCLK  writeTiming.FSMC_BusTurnAroundDuration = 0x00;writeTiming.FSMC_CLKDivision = 0x00;writeTiming.FSMC_DataLatency = 0x00;writeTiming.FSMC_AccessMode = FSMC_AccessMode_A;   //模式A FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;//  这里我们使用NE4 ,也就对应BTCR[6],[7]。原子的是4  我们的是NE1FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; // 不复用数据地址FSMC_NORSRAMInitStructure.FSMC_MemoryType =FSMC_MemoryType_SRAM;// FSMC_MemoryType_SRAM;  //SRAM   FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;//存储器数据宽度为16bit   FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode =FSMC_BurstAccessMode_Disable;// FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait=FSMC_AsynchronousWait_Disable; FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;   FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;  //  存储器写使能FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;   FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable; // 读写使用不同的时序FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &readWriteTiming; //读写时序FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &writeTiming;  //写时序FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);  //初始化FSMC配置FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);  // 使能BANK1  这里要注意

3、RS引脚的修改

看过原子的视频都知道这两句程序的意思

//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令区分线
//注意设置时STM32内部会右移一位对其! 111110=0X3E
#define LCD_BASE        ((u32)(0x60000000 | 0x0001FFFE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)

原子的本来是NE4的,我们现在是NE1所以要把0x6C000000改成现在这样,对应的是第一区,因为我们RS接的是A16,所以要在17位写1所以或的数就是上面那个0x0001FFFE

经过这样的修改程序就可以了,可以烧录到开发板上了。

4、烧录好的图片

手机有点渣渣,见谅啊。哈哈

上面就是我的总结,有什么不好的地方联系我,因为我也是初学,好多东西知其然不知其所以然,所以只能先这样,尽量能帮到大家。

stm32f103vet6利用fsmc控制LIL9341液晶屏相关推荐

  1. 使用Python控制1602液晶屏实时显示时间(附PyCharm远程调试)

    前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 本文介绍一下UP板的GPIO资源使用,以及一个使用Python演示一个简单的demo. 本文使用Markdown写成,为获得更好的 ...

  2. 物联网开发笔记(84)- 使用Micropython开发ESP32开发板之控制LCD12864液晶屏和AHT10温度传感器

    一.目的 这一节我们学习如何使用我们的ESP32开发板来学习LCD12864液晶屏和AHT10温度传感器的操作.  二.环境 ESP32 + Thonny + LCD12864液晶屏 + AHT10温 ...

  3. STM8控制LCD12864液晶屏实验

    本文分以下几个部分: 第一部分:并口传输显示中英文 第二部分:并口传输显示图片 第三部分:串口传输 首先说明,我使用的LCD12864是采用ST7920控制器芯片的,操作LCD12864其实是在操作S ...

  4. [TPYBoard - Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板  一块 2.DS3231 ...

  5. micropython应用触摸屏_[TPYBoard - Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏...

    欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板  一块 2.DS3231模块   一块 3.NOKIA 5110 LCD 屏 一块 4.杜邦线:若干 ===感 ...

  6. protues仿真中12864液晶屏串行编程的感想(从实际硬件驱动芯片 ST7565R到仿真硬件驱动芯片SED1565)

    因为疫情的原因,没办法回学校拿毕业设计,自然也就没办法调试,虽然硬件电路都搭好了,但没法调试也就意味着不知道程序编写是否有问题,所以就想着在protues上把硬件电路搭起来调试程序,因为单片机用的是s ...

  7. stm32驱动lcd段码io配置_LCD驱动型单片机与段码液晶屏配合使用参考

    电子产品的开发自然少不了电子工程师的参与,他们是功能的主要实现者,那么对于之前没有接触和使用过LCD液晶屏的电子工程师来说,使用了LCD液晶屏的新产品要提前先了解LCD液晶屏的相关知识之后才能实现连接 ...

  8. 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)

    目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...

  9. STM32——FSMC(灵活的静态存储器控制器)驱动TFTLCD液晶屏

    TFTLCD液晶屏介绍 TFTLCD即薄膜晶体管液晶显示器.它与无源TN-LCD.STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰 ...

最新文章

  1. HDU3496-Watch The Movie
  2. 77.数据库里怎么预防死锁?-80.视图索引
  3. linux java 获取路径怎么写_linux中java获取路径怎么写?
  4. Golang sync.pool对象池
  5. 拳王虚拟项目公社:说一个合法正规兼职创业,副业虚拟资源项目
  6. ajax提交表单序列化(serialize())数据
  7. 有趣的算法:1元=1分
  8. [转]VC6 STLport-5.1.4 编译 安装
  9. iOS开发之获取手机本地语言
  10. 缓存踩踏:Facebook史上最严重的宕机事件分析
  11. 金融科技赋能 互融云手机回租系统 实现资产全流程在线运营管理
  12. 计算机网络之物理层,数据链路层,网络层 学习笔记
  13. 利用Matplotlib绘制各类图表
  14. 附加题——求n的阶乘和
  15. Java基础数组——以三种方法打印古诗《清平调》
  16. python123作业题
  17. 知其然也知其所以然,Redis笔记总结:核心原理与应用实践
  18. python刷新腾讯云cdn
  19. 外国用户和国内用户看待浏览器的问题
  20. 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯

热门文章

  1. Mysql语句+Linux指令一步入门
  2. 我的世界手机版开服务器领地系统,我的世界手机版领地指令大全 领地指令怎么用...
  3. 网络应用程序设计模式:浅谈CS架构与BS架构
  4. 多维tensor/numpy array的拼接(np.stack, torch.cat)
  5. 应用matlab仿真几类混沌电路,应用MATLAB仿真几类混沌电路
  6. modelmapper属性匹配问题分析
  7. 用户请求网站提示 网络连接错误
  8. 10本好书读物推荐,职场管理者必读,建议收藏
  9. 用QQ群推广网站的方法
  10. 计算机专业里的麦课尔雅,艺术导论超星尔雅网课答案2020年_高校邦_计算机文化基础_章节答案...