【提问】请问洋桃1号开发板的GPIOB端口要使用的话,硬件上和软件上需要注意什么?我想用STM32上的GPIOB端口控制点亮一个20口的12864液晶屏?


解答:

【方法论】

1,解决这个问题的方法是查找数据手册,要熟悉GPIO在手册上写的属性和注意事项。因为要连接的是LCD12864屏,还要阅读屏幕的数据手册,了解屏幕接口的特性。

2,然后去百度搜索“STM32 LCD12864” 或 “STC32 12864 电路图”。查找有没有其他做过这个设计,借鉴别人的设计案例。

【经验论】

1,STM32单片机与其他外部模块连接时,第一需要注意的是电压,STM32是3.3V电源,如果LCD12864模块的工作电压是3.3V则没有问题。如果是5V则需要考虑电源兼容,一定要使用STM32上兼容5V电压的GPIO。

2,其次是接口电平兼容性,考虑TTL和CMOS电平问题,还有LCD接口电平的要求,比如某个接口需要上拉、某个要下拉、某个要高阻。在单片机初始化程序里要设置好对应的GPIO模式。

3,最后要考虑的是接口复用。STM32的PB组接口复用了很多功能,特别是有几个接口在上电后默认为是JTAG功能,必须在初始化程序里改为GPIO模式(这个方法在《STM32入门100步》中有详细讲解)。另外PB2接口复用为BOOT1,这个接口会影响bootloader启动方式,要重点关注。

4,如上所说的方式方法还适用于LCD1602等其他规格的显示屏,也部分适用于各种单片机外围模块。

【建议】

1,STM32驱动LCD屏时,尽量使用LCD模块的串口通信。因为并口会占用很多GPIO,浪费资源。

2,当通信速度较高时,要考虑稳定性,匹配适合的上/下拉电阻值。

洋桃技术支持0001:GPIO驱动12864液晶屏需要注意哪些事项?相关推荐

  1. 洋桃技术支持0006:开发板上电扬声器有杂音怎么办?

    洋桃技术支持0006:开发板上电扬声器有杂音怎么办? 提问: 洋桃1号开发板插入USB线后运行出厂程序,这时我发现扬声器里发出吱吱的电流声.这样正常吗?是质量问题吗? 解答: 首先说明,出现电流声是正 ...

  2. 洋桃技术支持0002:中断函数调用冲突问题

    [洋桃技术支持]编号0002:中断函数调用冲突问题 提问: 杜老师,我的程序进入到中断之后,执行完一次中断就不返回主函数了,请问这是什么原因呢? 问题的扩展: 在开启中断函数后 (下图中的NVIC_C ...

  3. 洋桃技术支持0004:注释信息出现乱码如何解决?

    洋桃技术支持0004:注释信息出现乱码如何解决? 提问: 杜老师,我复制洋桃教学视频中示例程序的代码,但注释信息本应显示中文的地方变成了乱码,这是什么原因? 解答: 由于KEIL是英国公司研发的,他们 ...

  4. 洋桃技术支持0005:洋桃1号开发板上电不运行如何解决?

    洋桃技术支持0005:洋桃1号开发板上电不运行如何解决? 提问: 我购买的洋桃1号开发板,之前一直用的好好的,但今天插上电源发现没有反应,但核心板上的ASP指示灯是亮的.这是什么原因? 解答: 导致洋 ...

  5. MCU驱动和RGB驱动的液晶屏的区别

    概况来讲,RGB驱动需要的硬件条件高,比如用STM32F429的LTDC+DMA2D模块,外加SDRAM作为显存.而MCU接口,STM32F407系列的控制器就整合了这个模块,包含6800和8080两 ...

  6. ESP32驱动LCD液晶屏选型、262K什么意思?SPI写LCD的GRAM时序、MCU液晶屏驱动IC的寄存器功能

    最近转战ESP32,ESP32-D0WDQ6 型号的GPIO只有那么20个左右,且还有几个GPIO只能做输入,非常捉襟见肘.所以如果要驱动LCD液晶屏,绝大多数都会选择SPI接口的MCU屏. 为了编写 ...

  7. STM32F103软件模拟SPI接口驱动ILI9486液晶屏

    STM32F103软件模拟SPI接口驱动ILI9486液晶屏 ILI9486的工作模式 ILI9486的SPI总线方式简介 ILI9486的3线SPI总线底层驱动配置步骤 ILI9486的工作模式 I ...

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

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

  9. arduino下载库出错_arduino的I2C通讯 3:驱动1602液晶屏

    上个推送,我们学习了I2C功能的基础知识.而且知道了使用很多器件都需要安装库.本次,我们一起来做一个实例,用arduino驱动1602液晶屏 1602代表屏幕有16列,2行.传统的驱动方式占用了大量的 ...

最新文章

  1. tensorflow models 工程解析
  2. 表格(table、tr、th、td、colspan、rowspan)
  3. 马化腾:微信将被谁颠覆,领衔下一代互联网的终端居然是?
  4. web嵌入到原生的app里需要注意的事项
  5. 生活点滴:java基础知识细化
  6. Katalon Studio之swagger中的API导入
  7. 光有面罩不是能防护的
  8. Google SVN托管和使用学习笔记
  9. 更新 PORTS-Tree 且升级已安装的软件[zt]
  10. mongodb数组更新操作符$push
  11. mysql 存储过程排序_MYSQL查询节点的所有父节点,按层级排序的存储过程
  12. 【C语言】数列有序(一维数组处理)
  13. killall 引起应用程序挂起【原创】
  14. Linux/CentOS/Ubuntu查看文件内容命令总结
  15. centos7.5部署mysql cluster NDB总结
  16. 微信提示在客户端提交验证_微信中怎么查看我发送的好友验证请求?
  17. 第1.5 章 elasticsearch备份过程记录
  18. 财会法规与职业道德【18】
  19. css固定图片大小 vue_css3 实现图片等比例放大与缩小
  20. html5在线裁剪,HTML5 本地裁剪图片并上传至服务器(老梗)

热门文章

  1. flutter dart 获取当前时间戳
  2. Spring IOC容器学习总结
  3. 马斯克的星链计划原理是什么,快跟室友一起学习一手卫星链路设计吧
  4. 我的世界服务器物品编辑器没用,我的世界1.6.4背包编辑器怎么用(含各版本背包编辑器存档)...
  5. 交互设计是什么:一篇文章推开交互设计的大门
  6. k8s yaml资源清单格式
  7. 机房建设必须知道的四大要求
  8. 棋牌游戏开发框架Theway 架构篇
  9. js上传文件到c 服务器,js上传文件到c服务器
  10. 适用于 Linux 桌面的 7 大白板应用程序