2350|2

1532

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【AT32F421测评】+数码管模块的显示驱动 [复制链接]

  本帖最后由 jinglixixi 于 2021-4-30 08:42 编辑

上次介绍了并行传输的数码管显示模块,这次介绍另一种以串行方式传输数据的数码管显示模块,见图1所示。

该模块除电源引脚外,还有3个引脚,分别是DIN数据引脚、CLK时钟引脚及CS选控引脚。

图1 数码管模块

 

该数码管的显示效果如图2所示,若修改引脚连接关系,则可直接将数码管模块查到Arduino接口来使用。

图2 数码管模块

 

相关程序如下:

#include <stdio.h>

#include "at32f4xx.h"

#include "at32_board.h"

#define SMG_CLK_Set()   GPIOB->BSRE = GPIO_Pins_9

#define SMG_CLK_Clr()   GPIOB->BRE = GPIO_Pins_9

#define SMG_DIN_Set()   GPIOB->BSRE = GPIO_Pins_8

#define SMG_DIN_Clr()   GPIOB->BRE = GPIO_Pins_8

#define SMG_CS_Set()    GPIOB->BSRE = GPIO_Pins_10

#define SMG_CS_Clr()    GPIOB->BRE = GPIO_Pins_10

 

void  AT_eval_smg_init(void)

{

   GPIO_InitType GPIO_InitStructure;

   RCC_AHBPeriphClockCmd(RCC_AHBPERIPH_GPIOB, ENABLE);

   GPIO_StructInit(&GPIO_InitStructure);

   GPIO_InitStructure.GPIO_Pins = GPIO_Pins_10|GPIO_Pins_8|GPIO_Pins_9;

   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

   GPIO_InitStructure.GPIO_OutType = GPIO_OutType_PP;

   GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz;

   GPIO_Init(GPIOB, &GPIO_InitStructure);

   SMG_CLK_Set();

   SMG_DIN_Set();

   SMG_CS_Set();

}

 

void Write_Max7219_byte(uint8_t DATA)

{

    uint8_t i;

    SMG_CS_Clr();

    for(i=8;i>=1;i--)

    {

       SMG_CLK_Clr();

       if(DATA&0x80)

       {

           SMG_DIN_Set();

       }

       else

       {

           SMG_DIN_Clr();

       }

       DATA=DATA<<1;

       SMG_CLK_Set();

    }

}

 

void Init_MAX7219(void)

{

   Write_Max7219(0x09, 0xff);

   Write_Max7219(0x0a, 0x03);

   Write_Max7219(0x0b, 0x07);

   Write_Max7219(0x0c, 0x01);

   Write_Max7219(0x0f, 0x01);

}

 

int main(void)

{

   AT32_Board_Init();

   AT_eval_smg_init();

   Init_MAX7219();

   Delay_ms(2000);

   Write_Max7219(0x0f,0x00);

   Write_Max7219(1,8);

   Write_Max7219(2,7);

   Write_Max7219(3,6);

   Write_Max7219(4,5);

   Write_Max7219(5,4);

   Write_Max7219(6,3);

   Write_Max7219(7,2);

   Write_Max7219(8,1);

   for(;;)

   {

     AT32_LEDn_Toggle(LED2);

     Delay_ms(200);

     AT32_LEDn_Toggle(LED3);

     Delay_ms(200);

     AT32_LEDn_Toggle(LED4);

     Delay_ms(200);

   }

}

 

 

图3 数码管模块

 

实现图3效果的引脚连接及高低电平输出设置如下:

DIN--- PA5

CS --- PA6

CLK---PA7

 

#define SMG_CLK_Set()   GPIOA->BSRE = GPIO_Pins_7

#define SMG_CLK_Clr()   GPIOA->BRE = GPIO_Pins_7

#define SMG_DIN_Set()   GPIOA->BSRE = GPIO_Pins_5

#define SMG_DIN_Clr()   GPIOA->BRE = GPIO_Pins_5

#define SMG_CS_Set()    GPIOA->BSRE = GPIO_Pins_6

#define SMG_CS_Clr()    GPIOA->BRE = GPIO_Pins_6

最新回复

高人~  详情 回复 发表于 2021-5-7 16:57
点赞 关注
 
 

回复
举报

693

帖子

7

TA的资源

版主

沙发
 

666

 
 
 

回复

267

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
高人~
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表