STM32使用HAL库驱动TA6932数码管驱动芯片

TA6932介绍

8段16位,支持共阴共阳LED数码管。

2、STM32CUBEMX配置引脚

推挽配置即可。

3、头文件

c 复制代码
/********************************************************************************************
* TA6932:8段16位数码管驱动
*********************************************************************************************/

#ifndef __TA6932_H
#define __TA6932_H

#include "main.h"

typedef enum
{
	LEV_0 = 0x80,
	LEV_1 = 0x88,
	LEV_2 = 0x89,
	LEV_3 = 0x8a,
	LEV_4 = 0x8b,
	LEV_5,
	LEV_6,
	LEV_7,
	LEV_8,
}lightLevType_E;

void TA6932_Init(void);
void TA6932_LightLevel(lightLevType_E _eLev);
void TA6932_Disp(uint8_t *_ucPtr,uint8_t _ucLenth);
#endif

4、C文件

c 复制代码
#include "ta6932.h"

/********************************************************************************************
* 共阴极数码管段码
*********************************************************************************************/
const uint8_t SEG_CODE[23] = 
{
	0x3f,/*0*/
	0x06,/*1*/
	0x5b,/*2*/
	0x4f,/*3*/
	0x66,/*4*/
	0x6d,/*5*/
	0x7d,/*6*/
	0x07,/*7*/
	0x7f,/*8*/
	0x6f,/*9*/
	
	0xBf,/*0.*/
	0x86,/*1.*/
	0xDb,/*2.*/
	0xCf,/*3.*/
	0xE6,/*4.*/
	0xEd,/*5.*/
	0xFd,/*6.*/
	0x87,/*7.*/
	0xFf,/*8.*/
	0xEf,/*9.*/	
	
	0x00,/*熄灭*/
	0X40,/*-*/
	0X61,/*℃*/	
};

#define TA6932_CLK(x)	HAL_GPIO_WritePin(TA6932_CLK_GPIO_Port,TA6932_CLK_Pin,(GPIO_PinState)(x))
#define TA6932_DIN(x)	HAL_GPIO_WritePin(TA6932_DIN_GPIO_Port,TA6932_DIN_Pin,(GPIO_PinState)(x))
#define TA6932_STB(x)	HAL_GPIO_WritePin(TA6932_STB_GPIO_Port,TA6932_STB_Pin,(GPIO_PinState)(x))


static void TA6932_WriteByte(uint8_t _ucData)
{
	uint8_t i;
	
	for(i=0; i<8; i++)
	{
		TA6932_CLK(1);
		if(_ucData & 0x01)
		{
			TA6932_DIN(1);
		}
		else
		{
			TA6932_DIN(0);
		}
		TA6932_CLK(0);
		_ucData >>= 1;
	}
	TA6932_CLK(1);
}

/********************************************************************************************
* 说明:TA6932初始化
*********************************************************************************************/
void TA6932_Init(void)
{
	TA6932_CLK(1);
	TA6932_STB(1);
	TA6932_DIN(1);
	HAL_Delay(10);
	
	TA6932_STB(0);
	TA6932_WriteByte(0x40);/*地址自增模式*/
	TA6932_STB(1);
	
	TA6932_STB(0);
	TA6932_WriteByte(0x8f);/*亮度最大*/
	TA6932_STB(1);
	
}

/********************************************************************************************
* 说明:TA6932亮度设置
* 输入:_eLev
*********************************************************************************************/
void TA6932_LightLevel(lightLevType_E _eLev)
{
	TA6932_STB(0);
	TA6932_WriteByte(_eLev);/*亮度设置*/
	TA6932_STB(1);	
}

/********************************************************************************************
* 说明:TA6932显示一串字符,从地址00开始
*********************************************************************************************/
void TA6932_Disp(uint8_t *_ucPtr,uint8_t _ucLenth)
{
	uint8_t i;
	TA6932_STB(0);
	TA6932_WriteByte(0x40);/*地址自增模式*/
	TA6932_STB(1);
	
	TA6932_STB(0);
	TA6932_WriteByte(0xc0);/*设置起始地址为0x00*/
	for(i=0; i<_ucLenth; i++)
	{
		TA6932_WriteByte(SEG_CODE[*_ucPtr]);/*显示段码*/
		_ucPtr++;
	}
	TA6932_STB(1);
}

5、使用注意

1、使用TA6932_Init进行初始化

2、使用TA6932_Disp(uint8_t *_ucPtr,uint8_t _ucLenth)进行显示,_upPtr指针指向段码,_ucLenth为显示长度,不超过16位。

相关推荐
派勤电子42 分钟前
5G物联网网关工控主板选型指南(超小尺寸工业级嵌入式硬件解决方案)
嵌入式硬件·工业网关·工控主板·工控主板选型·嵌入式工控主板·5g物联网网关·超小尺寸工控主板
&Hello Code1 小时前
2.一套可落地的 STM32 六层架构:基础工程框架搭建
stm32·嵌入式硬件·架构
sramdram2 小时前
高速低功耗stt-mram工业级存储方案
嵌入式硬件·mram·stt-mram·低功耗stt-mram
躺不平的理查德3 小时前
STM32 上拉和下拉
stm32·单片机·嵌入式硬件
嘶哈哈哈4 小时前
雷迅 CAN Babel 新品测评:一个小巧的 CAN/UART 双功能 USB 调试适配器
单片机·嵌入式硬件
Zevalin爱灰灰4 小时前
模拟信号链电路——感应触摸电路
单片机·嵌入式硬件
测试专家5 小时前
PCI-1553B板卡在 Windows Server 2016 服务器安装流程详解
服务器·windows·单片机
国科安芯5 小时前
还是4位?ASC8T245S 与 ASC4T245S 的双向电平转换选型实战
单片机·嵌入式硬件·物联网·fpga开发·机器人·云计算
Freak嵌入式6 小时前
RP2040 内核电源调节器:软件可调电压 + 三种模式,低功耗设计的利器
人工智能·单片机·嵌入式硬件·机器人·开源
ACP广源盛139246256737 小时前
YLB3118 存储桥接芯片完整机会点@ACP#联动曙光 8000
大数据·人工智能·分布式·单片机·嵌入式硬件