stm32f103vet6利用fsmc控制LIL9341液晶屏
作为初学者,我看的是原子的视频,用的是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液晶屏相关推荐
- 使用Python控制1602液晶屏实时显示时间(附PyCharm远程调试)
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 本文介绍一下UP板的GPIO资源使用,以及一个使用Python演示一个简单的demo. 本文使用Markdown写成,为获得更好的 ...
- 物联网开发笔记(84)- 使用Micropython开发ESP32开发板之控制LCD12864液晶屏和AHT10温度传感器
一.目的 这一节我们学习如何使用我们的ESP32开发板来学习LCD12864液晶屏和AHT10温度传感器的操作. 二.环境 ESP32 + Thonny + LCD12864液晶屏 + AHT10温 ...
- STM8控制LCD12864液晶屏实验
本文分以下几个部分: 第一部分:并口传输显示中英文 第二部分:并口传输显示图片 第三部分:串口传输 首先说明,我使用的LCD12864是采用ST7920控制器芯片的,操作LCD12864其实是在操作S ...
- [TPYBoard - Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板 一块 2.DS3231 ...
- micropython应用触摸屏_[TPYBoard - Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏...
欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板 一块 2.DS3231模块 一块 3.NOKIA 5110 LCD 屏 一块 4.杜邦线:若干 ===感 ...
- protues仿真中12864液晶屏串行编程的感想(从实际硬件驱动芯片 ST7565R到仿真硬件驱动芯片SED1565)
因为疫情的原因,没办法回学校拿毕业设计,自然也就没办法调试,虽然硬件电路都搭好了,但没法调试也就意味着不知道程序编写是否有问题,所以就想着在protues上把硬件电路搭起来调试程序,因为单片机用的是s ...
- stm32驱动lcd段码io配置_LCD驱动型单片机与段码液晶屏配合使用参考
电子产品的开发自然少不了电子工程师的参与,他们是功能的主要实现者,那么对于之前没有接触和使用过LCD液晶屏的电子工程师来说,使用了LCD液晶屏的新产品要提前先了解LCD液晶屏的相关知识之后才能实现连接 ...
- 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)
目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...
- STM32——FSMC(灵活的静态存储器控制器)驱动TFTLCD液晶屏
TFTLCD液晶屏介绍 TFTLCD即薄膜晶体管液晶显示器.它与无源TN-LCD.STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰 ...
最新文章
- HDU3496-Watch The Movie
- 77.数据库里怎么预防死锁?-80.视图索引
- linux java 获取路径怎么写_linux中java获取路径怎么写?
- Golang sync.pool对象池
- 拳王虚拟项目公社:说一个合法正规兼职创业,副业虚拟资源项目
- ajax提交表单序列化(serialize())数据
- 有趣的算法:1元=1分
- [转]VC6 STLport-5.1.4 编译 安装
- iOS开发之获取手机本地语言
- 缓存踩踏:Facebook史上最严重的宕机事件分析
- 金融科技赋能 互融云手机回租系统 实现资产全流程在线运营管理
- 计算机网络之物理层,数据链路层,网络层 学习笔记
- 利用Matplotlib绘制各类图表
- 附加题——求n的阶乘和
- Java基础数组——以三种方法打印古诗《清平调》
- python123作业题
- 知其然也知其所以然,Redis笔记总结:核心原理与应用实践
- python刷新腾讯云cdn
- 外国用户和国内用户看待浏览器的问题
- 【花雕动手做】有趣好玩的音乐可视化系列项目(27)--磁搅LED水旋灯
热门文章
- Mysql语句+Linux指令一步入门
- 我的世界手机版开服务器领地系统,我的世界手机版领地指令大全 领地指令怎么用...
- 网络应用程序设计模式:浅谈CS架构与BS架构
- 多维tensor/numpy array的拼接(np.stack, torch.cat)
- 应用matlab仿真几类混沌电路,应用MATLAB仿真几类混沌电路
- modelmapper属性匹配问题分析
- 用户请求网站提示 网络连接错误
- 10本好书读物推荐,职场管理者必读,建议收藏
- 用QQ群推广网站的方法
- 计算机专业里的麦课尔雅,艺术导论超星尔雅网课答案2020年_高校邦_计算机文化基础_章节答案...