打印

GD32F103C8T6直接驱动数码管测试

[复制链接]
411|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 lmn2005 于 2023-7-1 08:52 编辑

32系列芯片的IO很多,驱动电流也足,完全可以直接驱动LED数码管。所以总想有空可以测试一下。
为了方便测试,本人把四位共阴数码管的SEG0至SEG7分别串联一个1K电阻接到PB0至PB7,位选择COM0至COM3接到PB8至PB11。线路的驳接使用了面包板和杜邦线。

STM32的HAL库推出后,得到用户的广泛应用,但HAL库找不到直接给同一系列的IO进行赋值,就像51单片机一样,所以只能通过最原始的方法----操作寄存器来对PB口进行赋值。其实,也不复杂,就只需一句:
#define GPIOB_OUT(x) GPIOB->ODR = x; // GPIOB端口输出 X

然后自己再写一个显示函数:
void ShowLed(uint8_t d1,uint8_t d2,uint8_t d3,uint8_t d4,uint8_t h)

其中d1至d4为显示数据,h为小数点的位序。
数码管的显示编码如下:
uint8_t const LEDCODE[]={
                0x3F,/*0*/
        0x06,/*1*/
        0x5B,/*2*/
        0x4F,/*3*/
        0x66,/*4*/
        0x6D,/*5*/
        0x7D,/*6*/
        0x07,/*7*/
        0x7F,/*8*/
        0x6F,/*9*/
        0x77,/*A*/
        0x7C,/*b*/
        0x58,/*c*/
        0x5E,/*d*/
        0x79,/*E*/
        0x71,/*F*/
        0x74,/*h*/
        0x38,/*L*/
        0x54,/*n*/
        0x5C,/*o*/
        0x73,/*P*/
        0x50,/*r*/
        0x78,/*t*/
        0x3E,/*U*/
        0x40,/*-*/

};

测试效果:

使用特权

评论回复
沙发
yangxiaor520| | 2023-7-1 11:21 | 只看该作者
现在MCU的IO一般可以达到20mA

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

522

帖子

1

粉丝