TM1650数码管驱动芯片驱动数码管读取按键程序

博客介绍了在使用TM1650数码管驱动芯片过程中遇到的官方datasheet中按键读取时序错误,并提供了修正后的代码,帮助读者避免相同问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

折腾了四五个小时,官方给的datasheet有不少的问题,这里纠正一下按键读取时序错误:
在这里插入图片描述
读取的数据跟文档里面的数据提前了一位,在这里给大家提个醒!

下面贴上代码
c文件:

#include "TUBE_KEY.h"

#include "LED.h"
#include "delay.h"



#define SCL_Set (GPIOB->BSRR = 1<<5)
#define SDA_Set (GPIOB->BSRR = 1<<6)
#define SCL_Reset (GPIOB->BSRR = 1<<(16+5))
#define SDA_Reset (GPIOB->BSRR = 1<<(16+6))

#define SCL_Read (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5))
#define SDA_Read (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_6))

#define IIC_uS 10

u8 KEY_EXTI= 0;


static void TM1650_Init(void);
static void IIC_Init(void);
static void IIC_Start(void);
static void IIC_Stop(void);
static void IIC_Ack(void);
static void IIC_NoAck(void);
static u8 IIC_Wait_Ack(void);
static void IIC_Wr_Byte(u8 Data);
static u8 IIC_Rd_Byte(void);
static void TM1650_Wr_RAM(u8 Address, u8 Data);
static u8 KEYtm_Scan(void);






static void EXTI_KEY_Init(void);




/*
*函数功能:数码管按键初始化
*提    示:tm1650挂载4个按键,外部中断挂载两个按键
*输入参数:无
*输出参数:无
*返回值  :无
*/
void Tube_Key_Init(void)
{
    /*按键外部中断初始化*/
    EXTI_KEY_Init();

    /*TM1650初始化*/
    TM1650_Init();
}

/*
*函数功能:TM1650初始化
*提    示:tm1650挂载4个按键,外部中断挂载两个按键
*输入参数:无
*输出参数:无
*返回值  :无
*/
static void TM1650_Init(void)
{
    IIC_Init();

    Delay_mS(50);

    TM1650_Wr_RAM(0x48,0x00);//关闭显示
}

/*
*函数功能:数码管显示数字
*提    示:仅4位支持整数
*输入参数:u16 Num:显示的数字
*输出参数:无
*返回值  :无
*/
const u8 NUM[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管显示0~9对应的值
void Tube_DisNum(u16 Num)
{
    u8 Temp[4];

    /*数据分离*/
    Temp[0] = Num%10000/1000;
    Temp[1] = Num%1000/100;
    Temp[2] = Num%100/10;
    Temp[3] = Num%10;

    /*显示*/
    TM1650_Wr_RAM(0x68, NUM[Temp[0]]);
    TM1650_Wr_RAM(0x6A, NUM[Temp[1]]);
    TM1650_Wr_RAM(0x6C, NUM[Temp[2]]);
    TM1650_Wr_RAM(0x6E
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值