[STM32U5] NUCLEO-U575ZI-Q测评】CLion 优雅开发RT-Thread之二 驱动OLED‘

[复制链接]
 楼主| lulugl 发表于 2023-2-26 12:53 | 显示全部楼层 |阅读模式
<
本帖最后由 lulugl 于 2023-2-26 13:08 编辑

https://bbs.21ic.com/icview-3286554-1-1.html
在这篇帖子基础上,开始创建第一个测试工作。
在stm32U575在RT-Thread studio下面是没有开发板和芯片可选的,所以只能用keil或者IAR,或者是vscode等,但是在MacOs下,没有keil、IAR可用,当然也可以用VSCODE来写。这里向大家分享如何从零开始驱动OLED。
1、增加配置里面的I2C,来启用i2c,我们根据原理图,CN7的D15为SCL对应的是PB8,D14为SDA对应的PB9,根据管脚计算公式,计算出PB8为16*1+8=24,同理PB9为24.编辑/board文件夹下的Kconfig,增加如下内容:
  1.         if BSP_USING_I2C
  2.             menuconfig BSP_USING_I2C1
  3.                 bool "Enable I2C1 BUS (software simulation)"
  4.                 default y
  5.                 if BSP_USING_I2C1
  6.                     comment "Notice: PB8 --> 24; PB9 --> 25"
  7.                     config BSP_I2C1_SCL_PIN
  8.                         int "i2c1 scl pin number"
  9.                         range 1 176
  10.                         default 24
  11.                     config BSP_I2C1_SDA_PIN
  12.                         int "I2C1 sda pin number"
  13.                         range 1 178
  14.                         default 25
  15.                 endif


  16.         endif
2、进入图形化配置工具,配置I2C1、增加在线软件包ssd1306:
在stm32u575-st-nucleo目录下打开终端,执行scons --pyconfig图形化工具,当然也可以用scons --menuconfig
截屏2023-02-26 12.44.15.png
截屏2023-02-26 12.45.51.png
保存后退出,先加载env环境:
source ~/.env/env.sh
然后执行pkgs --update来更新ssd1306软件包。
3、等待加载完成后执行scons来构建项目。构建完成后下载到开发板。系统启动,查看串口终端如下:
  1. [12:08:51.355] msh >help
  2. [12:09:00.537] RT-Thread shell commands:
  3. [12:09:00.537] reboot           - Reboot System
  4. [12:09:00.537] pin              - pin [option]
  5. [12:09:00.547]
  6. [12:09:00.547] clear            - clear the terminal screen
  7. [12:09:00.547] version          - show RT-Thread version information
  8. [12:09:00.547] list             - list objects
  9. [12:09:00.557] help             - RT-Thread shell help.
  10. [12:09:00.557] ps               - List threads in the system.
  11. [12:09:00.557] free             - Show the memory usage in the system.
  12. [12:09:00.567] ssd1306_TestAll  - test ssd1306 oled driver
  13. [12:09:00.567]
  14. [12:09:00.567] msh >list device
  15. [12:09:13.854] device           type         ref count
  16. [12:09:13.854] -------- -------------------- ----------
  17. [12:09:13.865] i2c1     I2C Bus              0      
  18. [12:09:13.865] uart2    Character Device     0      
  19. [12:09:13.865] uart1    Character Device     2      
  20. [12:09:13.865] pin      Pin Device           0   


看到i2c总线已要加载成功。打OLED屏的SDA接到开发板的D14,SCL接到D15.执行ssd1306_TestAll就可以看到OLED屏已经驱动成功。
tifmill 发表于 2023-5-14 20:39 | 显示全部楼层
向SSD1306写数据时,采用的办法是在STM32的内部建立一个OLED的 GRAM(共 128*8 个字节),在每次修改的时候,只是修改 STM32 上的 GRAM
 楼主| lulugl 发表于 2023-5-15 08:03 | 显示全部楼层
tifmill 发表于 2023-5-14 20:39
向SSD1306写数据时,采用的办法是在STM32的内部建立一个OLED的 GRAM(共 128*8 个字节),在每次修改的时候,只 ...

感谢大佬的关注!
1988020566 发表于 2023-5-18 10:37 | 显示全部楼层
stm32oled屏幕残影是怎么造成的呢
lzmm 发表于 2023-5-18 10:50 | 显示全部楼层
oled,屏幕哪个好               
minzisc 发表于 2023-5-18 11:15 | 显示全部楼层
LED屏幕显示一个点的思路              
abotomson 发表于 2023-5-18 14:07 | 显示全部楼层
怎么用stm32cubemx配置oled显示的参数
earlmax 发表于 2023-5-18 15:35 | 显示全部楼层
U575ZI与四针oled怎么连接
cashrwood 发表于 2023-5-18 16:01 | 显示全部楼层
可以实现OLED多级菜单UI吗?
 楼主| lulugl 发表于 2023-5-19 09:03 | 显示全部楼层
cashrwood 发表于 2023-5-18 16:01
可以实现OLED多级菜单UI吗?

这个可以吧,没有去偿试。
LLGTR 发表于 2023-5-19 13:41 | 显示全部楼层
你这是用CLion还是用VSCode?
yorkbarney 发表于 2023-5-21 10:14 | 显示全部楼层
stm32驱动oled如何实现反色显示表示选中功能
ccook11 发表于 2023-5-21 10:30 | 显示全部楼层
oled,屏幕哪个好               
xiaoyaodz 发表于 2023-5-21 12:49 | 显示全部楼层
stm32如何实现1~10数字滚屏
usysm 发表于 2023-5-21 12:58 | 显示全部楼层
U575ZI与四针oled怎么连接
51xlf 发表于 2023-5-21 13:38 | 显示全部楼层
stm32oled屏幕残影是怎么造成的呢
updownq 发表于 2023-5-21 13:48 | 显示全部楼层
LED屏幕显示一个点的思路              
adolphcocker 发表于 2023-5-21 15:20 | 显示全部楼层
可以实现OLED多级菜单UI吗?
dspmana 发表于 2023-5-21 16:58 | 显示全部楼层
怎么用stm32cubemx配置oled显示的参数
yorkbarney 发表于 2023-5-21 17:05 | 显示全部楼层
stm32如何才能在液晶屏上让数字左右移动
您需要登录后才可以回帖 登录 | 注册

本版积分规则

180

主题

830

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部