注:本程序已验证可用,但只对本店模块做过适配测试,其他模块我们没法保证一定能用
实物参考链接 直戳跳转
一、资源说明
二、基本参数
1、参数
2、引脚说明
三、通信协议说明
1、写数据
时序:
程序:
//写一个字节
void TM1638_Write(uint8_t DATA) //写数据函数
{
uint8_t i;
for(i=0;i<8;i++)
{
CLK=0;
if(DATA&0X01)
DIO=1;
else
DIO=0;
DATA>>=1;
CLK=1;
}
}
2、读数据
时序:
程序:
//读一个字节
uint8_t TM1638_Read(void) //读数据函数
{
uint8_t i;
uint8_t temp=0;
DIO=1; //设置为输入
for(i=0;i<8;i++)
{
temp>>=1;
CLK=0;
if(DIO)
temp|=0x80;
CLK=1;
}
return temp;
}
四、部分代码说明
1、接线说明
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
1.1、STC89C52RC+按键数码管LED模块
//TM1638模块引脚定义
sbit DIO=P1^0;
sbit CLK=P1^1;
sbit STB=P1^2;
1.2、STM32F103C8T6+按键数码管LED模块
/* 定义LED连接的GPIO端口, 用户只需要修改下面的代码即可改变控制的LED引脚 */
#define DIO_GPIO_PORT GPIOA /* GPIO端口 */
#define DIO_GPIO_CLK RCC_APB2Periph_GPIOA /* GPIO端口时钟 */
#define DIO_GPIO_PIN GPIO_Pin_1
#define CLK_GPIO_PORT GPIOA /* GPIO端口 */
#define CLK_GPIO_CLK RCC_APB2Periph_GPIOA /* GPIO端口时钟 */
#define CLK_GPIO_PIN GPIO_Pin_2
#define STB_GPIO_PORT GPIOA /* GPIO端口 */
#define STB_GPIO_CLK RCC_APB2Periph_GPIOA /* GPIO端口时钟 */
#define STB_GPIO_PIN GPIO_Pin_3
#define DIO_H GPIO_SetBits(DIO_GPIO_PORT, DIO_GPIO_PIN)
#define DIO_L GPIO_ResetBits(DIO_GPIO_PORT, DIO_GPIO_PIN)
#define CLK_H GPIO_SetBits(CLK_GPIO_PORT, CLK_GPIO_PIN)
#define CLK_L GPIO_ResetBits(CLK_GPIO_PORT, CLK_GPIO_PIN)
#define STB_H GPIO_SetBits(STB_GPIO_PORT, STB_GPIO_PIN)
#define STB_L GPIO_ResetBits(STB_GPIO_PORT, STB_GPIO_PIN)
#define R_DIO GPIO_ReadInputDataBit(DIO_GPIO_PORT, DIO_GPIO_PIN)
五、基础知识学习
STC89C52RC程序下载 直戳跳转
STM32F103C8T6程序下载
1、串口下载 直戳跳转
2、ST-LINK下载 直戳跳转
3、J-LINK下载 直戳跳转
4、DAP-LINK下载 直戳跳转
六、视频效果展示与程序资料获取
实物参考链接 直戳跳转
七、注意事项
1、VCC GND请勿接反,接反易烧
2、显示异常时,排除接线接触不良
3、下载后显示异常时候可以重新上电复位下
九、接线说明
可参考程序main.c最上面接线说明