先前兴致勃勃的来弄16位并口驱动LCD。本以为就须要改下LCD IC的初始化即可了,没想到弄了这么多天最终发现自己走进了一个深坑了 T T

原因是我的开发板是奋斗V5的, 它确实有MCU外扩IO口, 还支持16位并口驱动,可是!! 感觉它全然是为了迎合FSMC-LCD来设定TFT接口的..

这是它的原理图..

再来看看正点原子的

再来看看它的芯片中关于这些IO口的部分

正点原子这个应该是不支持FSMC的.这个就非常easy写数据:

#define   LCD_CS_SET  <span style="white-space:pre"> </span>GPIOC->BSRR=1<<9    //片选port          PC9
#define LCD_RS_SET  GPIOC->BSRR=1<<8    //数据/命令              PC8
#define LCD_WR_SET  GPIOC->BSRR=1<<7    //写数据              PC7
#define LCD_RD_SET  GPIOC->BSRR=1<<6    //读数据          PC6#define LCD_CS_CLR  <span style="white-space:pre"> </span>GPIOC->BRR=1<<9     //片选port          PC9
#define LCD_RS_CLR  GPIOC->BRR=1<<8     //数据/命令              PC8
#define LCD_WR_CLR  GPIOC->BRR=1<<7     //写数据              PC7
#define LCD_RD_CLR  GPIOC->BRR=1<<6     //读数据              PC6//PB0~15,作为数据线
#define DATAOUT(x) GPIOB->ODR=x; //数据输出
#define DATAIN     GPIOB->IDR;   //数据输入
//用宏定义,提快速度.#define LCD_WR_DATA(data){\
LCD_RS_SET;\
LCD_CS_CLR;\
DATAOUT(data);\
LCD_WR_CLR;\
LCD_WR_SET;\
LCD_CS_SET;\
} 

非常明显,PC6-PC9为读写什么的信号线, PB0-PB15位16位数据线,这样就非常easy写了..

= =  可是再看看上面的奋斗V5的, 我就有种想撞墙的冲动!尽管它也有信号线口、16位数据口。可是它是分别用PD和PE加起来的.. 这样写数据起来就很困难了

唉....不知道是不是我蠢... 反正我是想不出来这么写... T T 假设有人知道怎么写能够告诉我下么? 事实上也没什么事情, 这件事对我的教训就是以后

開始做一件事情的时候要好好想好该具备哪些事情,不要一股脑就扎进去。这样反而浪费很多其它时间.

STM32学习之路-感觉自己走到了一个天大的坑里了!相关推荐

  1. 嵌入式(stm32)学习之路---无源蜂呜器

    无源蜂呜器引脚定义 #define BUZZERPORT GPIOB-GPIOB口宏定义 #define BUZZER GPIO_Pin_5-具体PIN脚宏定义 void BUZZER_Init(vo ...

  2. STM32学习之路-SysTick的应用(时间延迟)

    开发板:奋斗V5 好~ 菜B要来搞实验了.. 前面已经说了SysTick的工作原理什么的了,这里就不说了.. 先来做第一个实验: 盗自奋斗的样例,嘿嘿, 用SysTick产生1ms的基准时间,产生中断 ...

  3. STM32学习之路——麒麟座V3.2开发板蜂鸣器发声问题

    因为蜂鸣器使用了PB.3口,该口同时也用于JTAG调试.查询芯片手册知道默认PB3是用作JTDO,要用作普通IO需要开启端口重映射.所以开启重映射,关闭JTAG功能后即可正常操作IO口控制蜂鸣器发声. ...

  4. 单片机c语言中tbb,STM32学习之路入门篇之指令集及cortex——m3的存储系统

    ;   存储Rn的值到特殊功能寄存器的值 3).SReg可以是下表中的一个 2.IF-THEN 1).IF-THEN指令围成一个块,里面最多4条指令,它里面的指令可以条件执行. 2).IT使用形式: ...

  5. 小灰灰的APP学习之路(二)--创建第一个Hello World项目

    Hello World项目 1.打开工具 点击'Start a new Android Studio project' 选择'Empty Activity',创建一个空的activity 2.输入项目 ...

  6. C++学习之路(六):实现一个String类

    直接贴代码吧,这段时间准备面试也正好练习了一下. class String { public:String(const char *str = "");~String(void); ...

  7. 转载:浏览器兼容的反思、前端人员的学习之路、Web标准:我们是否一直在错误的道路上越走

    看主题前个人观点:标准是基础,其它皆魔道,掌握基本功,干活方可耍花招.--吕海鹏 正文: 我不想谈主流浏览器的历史.每个版本发布的时间,支持的特性与市场份额作为开头,这些大家可以从网络上获取浩如烟海的 ...

  8. 转载:浏览器兼容的反思、前端人员的学习之路、Web标准:我们是否一直在错误的道路上越走...

    看主题前个人观点:标准是基础,其它皆魔道,掌握基本功,干活方可耍花招.--吕海鹏 正文: 我不想谈主流浏览器的历史.每个版本发布的时间,支持的特性与市场份额作为开头,这些大家可以从网络上获取浩如烟海的 ...

  9. 从凡人到筑基期的单片机学习之路

    为防止读者误解,首先申明一点,我不是大佬,亦不是大神,只是众多单片机学习者中的一员而已.我写此文的目的主要是记录自己学习的过程,并借此为一些初学者提供部分参考,或许能让初学者少走一些弯路. 从小我对电 ...

最新文章

  1. 重磅!谷歌面试官亲自分享:Google面试技巧
  2. 通信系统之信道(四)
  3. Python学习笔记——文件写入和读取
  4. if语句输入月份判断季节_C语言循环及条件语句
  5. 简单计算器 逆波兰表达式
  6. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
  7. 重拾面向对象软件设计
  8. jquery的animate()方法也可设置非css属性
  9. Elasticsearch 实战经验总结
  10. Apache Camel Intellij IDEA插件的工作已开始
  11. select怎么设置默认值_20200817:详细说下数据倾斜怎么解决?
  12. LoRa、LoRaWAN及网关相关技术介绍
  13. php设置外键约束,关于php:禁用教义外键约束
  14. Swift基础语法: 23 - Swift的Trailing闭包, 捕获, 闭包是引用类型
  15. 2020-09-20
  16. 什么是PID?讲个故事,通俗易懂
  17. 论Python常见的内置模块
  18. 未转变者服务器载具名称,交通工具 - 未转变者中文维基 | Unturned资料站 - 灰机wiki...
  19. 单片机c语言reti的用法,51系列单片机的RETI指令分析
  20. openGauss专家亮相华为全联接大会2022高校专场——中科大北邮

热门文章

  1. BZOJ3170: [Tjoi2013]松鼠聚会 - 暴力
  2. 【转】void及void指针的深刻解析
  3. 随手看的一本书《java微服务》,测试成功了其中的第一个样例
  4. 微软研发流程(ALM)管理培训会议(比亚迪汽车)
  5. Android开发之xml布局文件无故报错、R文件丢失
  6. [转载]QQ空间技术架构之深刻揭密
  7. c#中Task线程的用法
  8. c++设置不适用预编译头
  9. C# GDI+ 绘图
  10. tf.slice解析