STM32开发(七)STM32F103 显示 —— 数码管显示 详解
创始人
2024-05-30 22:42:31
0

文章目录

    • 一、基础知识点
    • 二、开发环境
    • 三、STM32CubeMX相关配置
    • 四、Vscode代码讲解
    • 五、结果演示


一、基础知识点

了解 TM1620芯片手册 。本实验是基于STM32F103开发 通过GPIO模拟时序 实现TM1620数码管显示。

准备好了吗?开始我的show time。


二、开发环境

1、硬件开发准备
主控:STM32F103ZET6
控制数码管芯片:TM1620
在这里插入图片描述
2、软件开发准备
软件开发使用虚拟机 + VScode + STM32Cube 开发STM32,在虚拟机中直接完成编译下载。
该部分可参考:软件开发环境构建


三、STM32CubeMX相关配置

1、STM32CubeMX基本配置
本实验基于CubeMX详解构建基本框架 进行开发。

2、TM1620控制器信号脚配置(GPIO配置)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、Vscode代码讲解

1、数码管相关结构体定义与初始化

//定义结构体类型
typedef struct
{Brightness_Mode_t  Brightness;void (*TM1620_Init)(void);                          //TM1620初始化void (*Disp)(Disp_NUM_t,uint8_t,Disp_DP_Status_t);  //数码管显示
} Display_t;Display_t Display ={Brightness_Mode_Level3,    // 显示亮度等级TM1620_Init,               // 初始化,下面有具体实现        Disp                       // 数码管显示,下面有具体实现
};

2、使用宏定义表示每个引脚的高低电平

#define TM1620_STB_SET   HAL_GPIO_WritePin(GPIOC, TM1620_STB_Pin, GPIO_PIN_SET);
#define TM1620_STB_RESET HAL_GPIO_WritePin(GPIOC, TM1620_STB_Pin, GPIO_PIN_RESET);#define TM1620_CLK_SET   HAL_GPIO_WritePin(GPIOC, TM1620_CLK_Pin, GPIO_PIN_SET);
#define TM1620_CLK_RESET HAL_GPIO_WritePin(GPIOC, TM1620_CLK_Pin, GPIO_PIN_RESET);#define TM1620_DIN_SET   HAL_GPIO_WritePin(GPIOC, TM1620_DIN_Pin, GPIO_PIN_SET);
#define TM1620_DIN_RESET HAL_GPIO_WritePin(GPIOC, TM1620_DIN_Pin, GPIO_PIN_RESET);

3、根据芯片写时序,使用GPIO模拟

//TM1620写一个数据
static void TM1620_write_date(uint8_t date)
{uint8_t i = 0;TM1620_STB_RESET;                // 使能脚拉低for(i=0; i<8; i++){              // 循环发送数据位TM1620_CLK_RESET;                // 时钟拉低if((date & 0x01) == 0x01){      // 取出最低位TM1620_DIN_SET;}              // 数据位拉高  elseTM1620_DIN_RESET;            // 数据位拉低 date = date>>1;                // 移位,准备下一个发送的数据TM1620_CLK_SET;                // 时钟拉高,发送数据}
}

4、初始化数码管默认状态
初始化过程中设置数据命令是Disp_Addr_Mode_Auto,使用的是地址自增模式。时序根据芯片手册,实现数码管连续显示。

//TM1620初始化 地址增加模式   
static void TM1620_Init(void)      
{TM1620_write_date(Disp_Mode_GRID6_SGE8);            // 设置显示模式TM1620_STB_SET;TM1620_write_date(Disp_Addr_Mode_Auto);            // 设置数据命令TM1620_STB_SET;TM1620_write_date(Disp_Register_00H);            // 设置显示地址for(int i=0; iTM1620_write_date(0x00);                        // Date}TM1620_STB_SET;TM1620_write_date(Display.Brightness);            // 设置控制命令TM1620_STB_SET;
}  

5、制作固定地址显示数码管接口

static void Disp(Disp_NUM_t disp_num, uint8_t disp_value, Disp_DP_Status_t dp_status)  
{//参数范围检查if(disp_value > 0x0F){System.Assert_Failed();}TM1620_write_date(Disp_Mode_GRID6_SGE8);            // 设置显示模式TM1620_STB_SET;TM1620_write_date(Disp_Addr_Mode_Fix);            // 设置数据命令TM1620_STB_SET;TM1620_write_date(disp_num);                       // 设置显示地址if(dp_status == Disp_DP_ON)TM1620_write_date(Date[disp_value]+0x80);elseTM1620_write_date(Date[disp_value]);                     // DateTM1620_STB_SET;TM1620_write_date(Display.Brightness);            // 设置控制命令TM1620_STB_SET;
}

五、结果演示

通过调用 Display.Disp 接口控制数码管显示。
在这里插入图片描述

相关内容

热门资讯

清远英西峰林走廊导游词 清远英西峰林走廊导游词  英西峰林走廊位于英德市区西南60多公里的九龙、明迳、岩背三镇一带,这里密集...
家乡南京导游词-导游词 家乡南京导游词-导游词范文  作为一名尽职尽责的导游,就不得不需要编写导游词,导游词一般是根据实际的...
古漪园的导游词 古漪园的导游词范文  各位游客,大家好,欢迎大家来到古漪园参观,我是金凤旅游公司的66号导游,我叫刘...
颐和园景点导游词 颐和园景点导游词(精选6篇)  作为一位杰出的导游,时常需要编写导游词,导游词是我们引导游览时使用的...
天水南郭寺导游词 天水南郭寺导游词  南郭寺位于甘肃天水市秦州区南两公里处龙王沟东侧的慧音山坳,被誉为“天水第一名刹”...
山东崂山东麓华严寺导游词 山东崂山东麓华严寺导游词  作为一位兢兢业业的旅游从业人员,通常需要准备好一份导游词,导游词具有形象...
西安古城墙简单导游词 西安古城墙简单导游词  西安明城墙位于陕西省西安市中心区,墙高12米,顶宽12—14米,底宽15—1...
介绍贵州百里杜鹃的导游词 关于介绍贵州百里杜鹃的导游词范文(精选7篇)  作为一名专门为游客提供帮助的导游,通常需要用到导游词...
太原汾河公园导游词资料 太原汾河公园导游词资料  在公园两岸带状绿化平台上分布着4个主题广场、6个自然景区和7个观光景点。沿...
望海楼教堂导游词 望海楼教堂导游词  著名的望海楼留下太多的故事,也记载着太多名垂千史的成功人物,就让我们跟着导游一起...
大雁塔景区导游词 大雁塔景区导游词  导语:大雁塔位于唐长安城晋昌坊(今陕西省西安市南)的大慈恩寺内,又名“慈恩寺塔”...
阳春石林的导游词 阳春石林的导游词  导游词是导游人员引导游客观光游览时的讲解词,是导游员同游客交流思想,向游客传播文...
青岛栈桥的景点导游词 青岛栈桥的景点导游词  青岛是中国环境最好的城市之一。今天小编为大家整理了青岛的经典导游词,希望对您...
九寨沟旅游导游词 九寨沟旅游导游词(精选30篇)  作为一位兢兢业业的旅游从业人员,就有可能用到导游词,导游词是我们引...
泰州乔园导游词 泰州乔园导游词  泰州乔园是江苏省文物保护单位及省级重点风景名胜区,素称淮水以东第一园。以下是小编精...
西安大雁塔的导游词作文 关于西安大雁塔的导游词作文  一篇完整的导游词,其结构一般包括习惯用语、概括介绍、重点讲解三个部分,...
庐山探美之旅导游词 庐山探美之旅导游词  各位游客,大家好!我是探美旅行社的'导游潘昶皓。欢迎你们来庐山旅游。  庐山位...
沙面小学介绍导游词 沙面小学介绍导游词  不到沙面非尖子,不游珠江真遗憾。  各位旅客们早上好,我叫刘玮,大家可以叫我刘...
介绍成都景点的导游词 介绍成都景点的导游词(精选6篇)  作为一名专门引导游客、助人为乐的导游,时常需要编写导游词,导游词...
陈列馆导游词 陈列馆导游词  作为一名导游,常常需要准备导游词,导游词不是以一代百、千篇一律的,它必须是从实际出发...