|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-11-19 16:23 编辑 7 W9 ^* j) P% s3 z* Q5 J
2 ?7 X3 v: _" }, E4 ?$ H- W
. G0 C, W u, @) Bi8051U驱动0.96寸单色OLED12864实验程序: T" S" u2 c+ d
===SPI-DMA 刷 整屏 523uS,超高帧频
3 L: m/ X6 ~4 H$ Z# G/ c6 w本例程基于Ai8051U为主控芯片的实验箱V1.1版本进行编写测试。
4 k0 s& \' P+ X" [使用Keil C251编译器,Memory Model推荐设置XSmall模式,
$ x9 _% ~* [; W( b. h- }默认定义变量在edata,单时钟存取访问速度快。
1 s& k4 r" ]4 H+ S, Yedata建议保留1K给堆栈使用,空间不够时可将大数组、不常用变量/ @8 M7 h) { M) k0 T" Q
加xdata关键字定义到xdata空间。1 v1 a& `! k0 \2 B4 y2 Z
单色OLED12864显示屏驱动程序,驱动IC为SSD1306,SPI接口,
/ r" o2 B& r& ]9 Y* r通过SPI DMA将1024字节的图片数据送到 OLED12864,- W3 S# j9 [9 N# z/ ?
传送时不占用CPU时间。$ ?+ L, y) p$ t. p( k6 c
显示图形,汉字,英文,数字.
, m; z; n3 r' x+ F其中图形显示发送命令和图片数据使用SPI DMA操作,传输数据时不占用CPU时间。
! ?1 U" u( R+ K# `8 U E! X8 Q6 U9 K9 P做GUI最方便了,可以先操作定义于xdata的1024字节缓存,然后触发SPI DMA即可,
% w$ G( M+ B3 p" q' a3 Y最快523us即可自动刷完。
. v7 U, ?. A. k. r. p/ |- s3 \本例运行于40MHz, SPI速度为主频4分频(10MHz),每次SPI DMA传输总时间943us,/ w. b7 v$ b4 r
SPI速度为主频2分频(20MHz),每次SPI DMA传输总时间523us。
- c; _ a6 i9 K将要显示的内容放在1024字节的显存中,启动DMA传输即可。6 `& t5 f4 I% U5 D1 h/ B9 `/ [
下载时, 选择时钟 40MHz (用户可自行修改频率后重新编译即可).) o1 L0 y' W) N" x
7 q: m* c( S& ^9 Z6 M
5 s! \' I7 Z9 b& ]
5 g; L" C& S, i9 i I2 f& ?
! b% j/ S% z- C2 O
, E0 A3 J: c I' g5 e- L7 x
|
|