` 以数码管为显示器件是工业现场常用的方式,采用数码管显示模块则有利于简化设计。 将极海APM32F030R8 MINI开发板与数码管显示模块可以快速构建一个人机交互的窗口,它较之其他的显示方式具有占用系统引脚资源少的特点。此外,其所占用的程序空间也较之OLED屏或TFT屏要少。 在该显示方式中,数码管显示模块与MCU的连接关系为: CLK---PB0 DIN---PB1 CS---PB11 为了便于驱动数码管,对相关引脚输出高低电平的定义语句为: #define SMG_CLK_Clr() GPIO_ClearBit(GPIOB,GPIO_PIN_0) #define SMG_CLK_Set() GPIO_SetBit(GPIOB,GPIO_PIN_0) #define SMG_DIN_Clr() GPIO_ClearBit(GPIOB,GPIO_PIN_1) #define SMG_DIN_Set() GPIO_SetBit(GPIOB,GPIO_PIN_1) #define SMG_CS_Clr() GPIO_ClearBit(GPIOB,GPIO_PIN_11) #define SMG_CS_Set() GPIO_SetBit(GPIOB,GPIO_PIN_11) 配置相关引脚为输出功能的函数为:
- void APP_SMG_Init(void)
- {
- GPIO_Config_T gpioConfig;
- RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOB);
- gpioConfig.pin = GPIO_PIN_0;
- gpioConfig.mode = GPIO_MODE_OUT;
- gpioConfig.outtype = GPIO_OUT_TYPE_PP;
- gpioConfig.speed = GPIO_SPEED_50MHz;
- gpioConfig.pupd = GPIO_PUPD_NO;
- GPIO_Config(GPIOB, &gpioConfig);
- gpioConfig.pin = GPIO_PIN_1;
- GPIO_Config(GPIOB, &gpioConfig);
- gpioConfig.pin = GPIO_PIN_11;
- GPIO_Config(GPIOB, &gpioConfig);
- }
复制代码
模块初始化函数为:
- 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)
- {
- APP_SMG_Init();
- Init_MAX7219();
- 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);
- while(1);
- }
复制代码
显示效果图`
|