本文适合初级入门的同学,大佬请绕道。讲解怎么用stm32驱动成品LED点阵屏显示一副七色无灰度的图片,有灰度的图片可以入门后继续研究。

使用软硬件:

软件:Keil5,程序在后面会给出

硬件:STM32F103最小系统、全彩色P4LED点阵屏(HUB75接口,16扫)

说下stm32驱动LED点阵屏用途:

可以自己做些东西玩,比如日期时钟、音乐频谱、一些滚动字幕;

商业用途,开发控制器,结合各种传感器,LED点阵屏幕显示数据;

开始正题。

本文中使用的是STM32F103C8T6最小系统,这个估计在看的同学都有了。另外用到主角是LED点阵屏,本文使用的是一张全彩色P4LED点阵屏,接口是HUB75,扫描是1/16扫,这些参数不懂没关系,只要点阵屏买对了不影响学习。

这种成品的点阵屏是行、列驱动的方式,行驱动用38类译码器,列驱动用普通16路恒流驱动芯片(比如:sm16206s、fm6024、icn2038等等特别多,这类芯片是串行数据的)。比如本文用到的P4点阵屏是64*32点阵的,用到4个38译码器,R、G、B各4个sm16206s恒流芯片。

这里说下R、G、B。R指的是红色,G是绿色,B是蓝色。全彩色点阵屏是将RGB三种颜色灯封装在一个灯珠里,给对应的引脚供电即可显示相应的颜色,具体怎么驱动我们不需要了解,因为每种颜色有一个恒流芯片,我们控制芯片就好了。R、G同时亮我们就看到黄色;R、B同时亮我们就看到紫色;G、B同时亮我们就看到青色;加上R、G、B三色就是常说的七彩。

说一下HUB75接口,如下图。A、B、C、D、E是行信号,其中E信号在小于等于16扫时不需要;CLK(有的板也写作SCLK)是时钟信号;LE(有的板也写作LAT)是数据锁存信号);OE是使能信号;R1,G1,B1和R2,G2,B2是两组数据信号;

我们结合代码讲解一下显示过程:

下面是LED的显示函数。

//打点函数
void LED_Display(void)
{static uint8_t i,j;LED_D(j&0x8);LED_C(j&0x4);LED_B(j&0x2);LED_A(j&0x1);for(i=0;i<LED_Width;i++){//上半部16行LED_R1(LED_Buffer[i][(LED_Height-1)-j]&0x1);LED_G1(LED_Buffer[i][(LED_Height-1)-j]&0x2);LED_B1(LED_Buffer[i][(LED_Height-1)-j]&0x4);//下半部16行LED_R2(LED_Buffer[i][(LED_Height/2-1)-j]&0x1);LED_G2(LED_Buffer[i][(LED_Height/2-1)-j]&0x2);LED_B2(LED_Buffer[i][(LED_Height/2-1)-j]&0x4);LED_CLK(1);LED_CLK(0); //写入数据}LED_LAT(1);LED_LAT(0);   //锁存LED_OE(0);  //显示Delay_us(100); //显示停留时间,可以试着调这个值LED_OE(1);j++;j%=16;
}//将图片的取模数组Disp64x32存入显存数组LED_Buffer
void Display_ShowPicture(uint8_t X,uint8_t Y,uint8_t W,uint8_t H,uint8_t Color)
{uint8_t i,j;for(i=0;i<H;i++)//32{for(j=0;j<W;j++)//64{/* LED_Buffer[x][y]中xy指的是屏幕的横纵坐标 */LED_Buffer[W-1-j][H-1-i]=(Disp64x32[i][7-(j)/8]&(0x01<<(j)%8))?Color:0x00;}}
}int main(void)
{u8 flag;LED_Init();Display_ShowPicture(0,0,64,32,0x06/*绿+蓝*/);while (1){LED_Display();}
} 

其中下面这部分是用来选择行的。

LED_D(j&0x8);
LED_C(j&0x4);
LED_B(j&0x2);
LED_A(j&0x1);
......
j++;
j%=16; 

LED_Buffer[LED_Width][LED_Height]这个数组就是我们要显示的图片对应显存数组,它与点阵屏上的像素点是一一对应的(数据倒着存放是为了运算方便)。

我们用单片机控制点阵屏使用的是行扫描的方式,我们对这种方式并不陌生,学51单片机时控制LED数码管显示也是用的这种方式。先选择某一行,然后将这一行的显示数据分别发送给恒流芯片(串行的),接着锁存、显示(都是低电平有效)。

LED_LAT(1);
LED_LAT(0); //锁存
LED_OE(0);  //显示
Delay_us(100); //显示停留时间,可以试着调这个值
LED_OE(1); 

通过调整OE信号低电平持续时间可以改变点阵屏的亮度。

经过以上程序,就可以将取模后的图片显示在LED点阵屏上。

总结:

本文是入门教程,但仍然基于在看同学会stm32单片机配置和使用,会C语言。

完整程序下载:STM32F103驱动LED点阵屏P5全彩色HUB75接口_hub75接口定义-单片机文档类资源-CSDN下载

也可以群文件中免费下载(676606232)

程序适用的LED点阵屏必须是普通恒流驱动芯片,38类译码器,1/16扫描,HUB75接口的屏幕,请同学们向商家问清楚。

[入门教程]详细讲解STM32控制LED点阵屏(HUB75接口)相关推荐

  1. IOS开发入门之Xcode使用教程详细讲解(全)

    摘要:本次的IOS开发入门学习中,Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac ...

  2. Xcode使用教程详细讲解(上)

    Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac程序提供环境.因此,如果你要成为M ...

  3. Xcode使用教程详细讲解 (下)

    转载:http://mobile.51cto.com/iphone-273738.htm Xcode使用教程详细讲解 (下)是本节要介绍的内容,继续Xcode使用教程详细讲解 (上)的内容开始介绍. ...

  4. Xcode使用教程详细讲解

    from: http://mobile.51cto.com/iphone-273735.htm http://mobile.51cto.com/iphone-273738.htm Xcode使用教程详 ...

  5. Xcode使用教程详细讲解 (上)

    转载:http://mobile.51cto.com/iphone-273735.htm Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows ...

  6. Xcode使用教程详细讲解 1

    Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac程序提供环境.因此,如果你要成为M ...

  7. HC-05蓝牙模块与STM32控制led灯亮详解

    HC-05蓝牙模块与STM32控制led灯亮 一.HC-05蓝牙模块解析 1.简介 2.HC-05原理 3.HC-05实物图 二.使用AT指令进行配置 1.进入命令响应工作模式 2.配置串口 3.进行 ...

  8. 【FPGA基础快速入门6】实战-----触摸按键控制LED灯的学习

    [FPGA基础快速入门6]实战-----触摸按键控制LED灯的学习 触摸按键的种类 触摸按键主要可以分为四大类: 电阻式.电容式.红外感应式以及表面声波式. 1.电阻式触摸按键又多块导电薄膜按照按键的 ...

  9. STM32 控制LED灯

    STM32 控制LED灯 一.简述        记--直接通过设置寄存器来控制LED灯.通过使用STM库函数来控制LED灯实现流水灯.        例子1:链接: https://pan.baid ...

最新文章

  1. python中的列表操作
  2. wireshark从入门到精通(协议排错安全篇)3
  3. c# 另存为excel
  4. RHEL/CentOS查看网卡的MAC地址
  5. 13个Pandas实用技巧,有点香 !
  6. lightGBM GPU支持的安装、验证方法
  7. 分布式锁和mysql事物扣库存_浅谈库存扣减和锁
  8. 09.MyBatis的逆向工程
  9. ORACLE 日期加减操作
  10. UI设计实用干货素材|引导页模板
  11. httpd glibc free() 报错解决一例
  12. ESP8266 MQTT
  13. 移远EC20 4G模块拨号相关
  14. excel查看编码格式_Excel表格中格式转换的这些套路,你都get了吗?
  15. 计算机辅助设计技术领域的应用,计算机辅助设计技术在机械设计中的应用探讨...
  16. 画圆的函数----(基于MATLAB)
  17. lumion实例渲染6.2
  18. JavaEE-01-温故(集合、泛型、io、多线程)知新(junit、内省、路径问题)
  19. 简单的学生成绩管理系统
  20. 2021年上半年软考高级信息系统项目管理师论文和案例分析

热门文章

  1. oozie action shell 实战(完整配置文件)
  2. Uedit32比较2个文件的内容
  3. WinRAR x64 v5.5中文版去广告过程
  4. 电脑有网但浏览器打不开的解决方法
  5. Hexagon Binutils GNU 手册(19)
  6. 君のことが好きだよ。
  7. 使用vue和高德地图,仿58地图找房pc端,且解决marker过多卡顿
  8. 天猫淘宝企业服务为中小微企业打造供应链智能协同网络,让采购不再将就!丨爱分析报告
  9. 实体服装店如何开展线上销售的新模式?
  10. (转)FPE修改全教程1