|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-11-19 16:23 编辑 : E/ |' p4 K, |+ j4 y
/ U {0 m5 `. U$ b2 v: v
- o# d v! o2 o h. _# e- Ni8051U驱动0.96寸单色OLED12864实验程序
' I; z4 v- @* d8 q4 ?2 Y& z===SPI-DMA 刷 整屏 523uS,超高帧频
9 k9 X- ]6 z8 V3 s. A9 s ?本例程基于Ai8051U为主控芯片的实验箱V1.1版本进行编写测试。0 a: L4 V" O9 o0 k7 H( |. v5 |
使用Keil C251编译器,Memory Model推荐设置XSmall模式,
" W. _7 w$ k# Q默认定义变量在edata,单时钟存取访问速度快。9 R8 }7 i, ? e
edata建议保留1K给堆栈使用,空间不够时可将大数组、不常用变量) E0 D7 ?! s3 Y- F3 Y1 J
加xdata关键字定义到xdata空间。! C! z0 f0 [/ k W$ W7 c0 W1 {- C$ \
单色OLED12864显示屏驱动程序,驱动IC为SSD1306,SPI接口,
& B. `& }, k" r7 e通过SPI DMA将1024字节的图片数据送到 OLED12864,( \+ f) f" |5 Q ^, Z% \/ Z
传送时不占用CPU时间。
! x: J% X8 \" M: D, M. t显示图形,汉字,英文,数字.* t- f; B) K# L! _2 n/ p
其中图形显示发送命令和图片数据使用SPI DMA操作,传输数据时不占用CPU时间。
4 @, S! s! Y8 X1 ]* D做GUI最方便了,可以先操作定义于xdata的1024字节缓存,然后触发SPI DMA即可,
, I3 {3 ]! k- G- l$ {$ }最快523us即可自动刷完。" ?5 O' {! \0 v. h) e4 L5 G2 s5 M
本例运行于40MHz, SPI速度为主频4分频(10MHz),每次SPI DMA传输总时间943us,; e& S! q. q" `9 X t
SPI速度为主频2分频(20MHz),每次SPI DMA传输总时间523us。
# D% B' i- ?. a( t0 M将要显示的内容放在1024字节的显存中,启动DMA传输即可。% H2 ^2 }3 t4 }. c2 W
下载时, 选择时钟 40MHz (用户可自行修改频率后重新编译即可).. f8 a1 H! D6 N2 t( y
- [' u% `8 W8 ]
: t. s9 s% @: l5 d# B
4 Z4 G$ @- L+ j8 h$ c- |% B/ t, e
K; v8 T/ a. t+ B5 ~
. C/ e1 ~( _7 ^0 p |
|