tm1621驱动程序
时间: 2023-08-08 22:07:57 浏览: 327
tm1621.zip_tm1621_tm1621程序_tm1621驱动_tm1621驱动程序
5星 · 资源好评率100%
TM1621是一种常见的LED显示驱动器芯片,常用于7段数码管、点阵LED、字符LCD等显示模块。以下是一个简单的TM1621驱动程序示例,可以帮助你快速上手:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <wiringPi.h>
#define CLK_PIN 0 // CLK引脚连接到树莓派的GPIO0
#define DATA_PIN 1 // DATA引脚连接到树莓派的GPIO1
#define STB_PIN 2 // STB引脚连接到树莓派的GPIO2
void TM1621_sendCommand(unsigned char cmd)
{
int i;
digitalWrite(STB_PIN, LOW);
for (i = 0; i < 8; i++) {
digitalWrite(CLK_PIN, LOW);
digitalWrite(DATA_PIN, (cmd & 0x01) ? HIGH : LOW);
cmd >>= 1;
digitalWrite(CLK_PIN, HIGH);
}
digitalWrite(STB_PIN, HIGH);
}
void TM1621_init()
{
pinMode(CLK_PIN, OUTPUT);
pinMode(DATA_PIN, OUTPUT);
pinMode(STB_PIN, OUTPUT);
TM1621_sendCommand(0x88); // 初始化,开启普通模式
TM1621_sendCommand(0x40); // 设置地址指针为0
TM1621_sendCommand(0x44); // 设置固定地址模式
}
void TM1621_display(unsigned char *buffer, int len)
{
int i;
if (len > 16) {
len = 16;
}
TM1621_sendCommand(0x44); // 设置固定地址模式
for (i = 0; i < len; i++) {
TM1621_sendCommand(0xc0 | i << 1);
TM1621_sendCommand(buffer[i]);
}
}
int main()
{
unsigned char buffer[16] = {0x00, 0x7f, 0x00, 0x7f, 0x00, 0x7f, 0x00, 0x7f,
0x00, 0x7f, 0x00, 0x7f, 0x00, 0x7f, 0x00, 0x7f};
if (wiringPiSetup() == -1) {
printf("Failed to setup wiringPi!\n");
return 1;
}
TM1621_init();
TM1621_display(buffer, 16);
return 0;
}
```
这个示例程序可以在树莓派上使用wiringPi库来控制TM1621芯片,实现一个全亮的7段数码管。你可以根据需要修改buffer数组中的值,来显示不同的数字或字符。
阅读全文