[驱动] TM1729

news/2025/1/11 8:47:38/

注:本程序使用华大半导体HC32L13X系列单片机。Cortex-M0 plus内核

 

Tm1729.h

#ifndef _TM1729_HPP_
#define _TM1729_HPP_typedef unsigned char uint8_t;extern void tm1729_init(void);
extern void tm1729_disp(uint8_t* p, uint8_t size);#endif

 

Tm1729.c

#include "Tm1729.h"
#include "gpio.h"
#include "ddl.h"#define nop() delay10us(1); // 十微秒延时。根据Tm1729官方手册说明,最小需要时间间隔在2.5us,\
所以实际上大于3us的延时都可以// 指令集
#define SLAVE_ADDRESS     0x7C		     // 从机地址
#define ICSET         	  0xEA		     // 1110 1010 软复位,内部时钟
#define BLKCTL            0xF0		     // 1111 0000 闪烁控制命令:不闪烁
#define DISCTL            0xA2           // FR=Normal,SR=Normal,Line翻转
#define MODESET           0xC8           // 显示开启,1/3偏压
#define APCTL             0xFC		     // 全屏控制命令:Normal
#define ADSET             0x00		     // 初始地址设置// 此处为单片机接到Tm1729的管脚配置,本程序采用软件模拟IIC。
#define SDA_SET Gpio_WriteOutputIO(GpioPortD, GpioPin7, TRUE) //拉高
#define SDA_RESET Gpio_WriteOutputIO(GpioPortD, GpioPin7, FALSE) //拉低  SDA
#define SCL_SET Gpio_WriteOutputIO(GpioPortD, GpioPin6, TRUE) //拉高
#define SCL_RESET Gpio_WriteOutputIO(GpioPortD, GpioPin6, FALSE) //拉低  SCL// IIC开始信号
void start_i2c()
{SDA_SET;nop();SCL_SET;nop();SDA_RESET;nop();SCL_RESET;nop();
}// IIC停止信号
void stop_i2c()
{SCL_SET;nop();SDA_RESET;nop();SDA_SET;nop();SDA_RESET;SCL_RESET;
}// 数据传输-传送一个字节, 先读高位
void send_byte(unsigned char dat) 
{unsigned char i;for (i = 0; i < 8; i++){SCL_RESET;if (dat & 0x80) SDA_SET;else SDA_RESET;SCL_SET;dat = dat << 1;}SCL_RESET;nop();SDA_RESET; // ACK信号nop();SCL_SET;nop();nop();SCL_RESET;nop();
}// 管脚初始化
void gpio_init(void)
{stc_gpio_config_t pstcGpioCfg;Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);  //< 打开GPIO外设时钟门控pstcGpioCfg->enDir = GpioDirOut; // 端口方向配置->输出 pstcGpioCfg->enDrv = GpioDrvH; // 端口驱动能力配置->高驱动能力 pstcGpioCfg->enPuPd = GpioPu; // 端口上下拉配置->上拉 pstcGpioCfg->enOD = GpioOdDisable; // 端口开漏输出配置->开漏输出关闭 pstcGpioCfg->enCtrlMode = GpioAHB; // 端口输入/输出值寄存器总线控制模式配置->AHB	Gpio_Init(GpioPortD, GpioPin6, &pstcGpioCfg);Gpio_WriteOutputIO(GpioPortD, GpioPin6, TRUE); // SCLGpio_Init(GpioPortD, GpioPin7, &pstcGpioCfg);Gpio_WriteOutputIO(GpioPortD, GpioPin7, TRUE); // SDA
}// 初始化
void tm1729_init(void)
{gpio_init();stop_i2c(); // 停止条件start_i2c(); // 开始条件send_byte(SLAVE_ADDRESS); // 发送SLAVE_ADDRESSsend_byte(ICSET); // 软复位,内部时钟send_byte(DISCTL); // FR=Normal,SR=Normal,Line翻转send_byte(BLKCTL); // 不闪烁send_byte(APCTL); // 全屏控制命令:Normalsend_byte(MODESET); // 显示开启,1/3偏压stop_i2c(); // 停止条件
}// 更新RAM
void tm1729_disp(uint8_t* p, uint8_t size)
{unsigned char i;start_i2c();send_byte(SLAVE_ADDRESS);send_byte(ADSET);for (i = 0; i < size; ++i) // 发送26byte显示数据{send_byte(*p);p++;}stop_i2c();
}// 测试
unsigned char LCD_TEST[26] = { 0x00 };
unsigned char LCD_OFF[26] = { 0x00 };void test_tm1729(void)
{delay1ms(100); // 上电延时100mstm1729_init(); // TM1729初始化memset(LCD_OFF, 0X00, 26);tm1729_disp(LCDOFF, 26); // 清屏memset(LCD_TEST, 0xff, 26); // 全亮while (1){tm1729_disp(LCD_TEST, 26);delay1ms(200);}
}

 


http://www.ppmy.cn/news/254422.html

相关文章

P1909(LuoGu)

P1909(LuoGu) import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();//定义自变量n/*a和b两个数组对应表示数量和价格&#xff0c;例如&#xff1a;a[0]: …

连接打印机出现错误代码0X00000709怎么解决?

解决方法&#xff1a; 1、首先输入共享打印机的IP地址进行连接&#xff0c;在点击屏幕左下角的开始图标&#xff0c;并在搜索栏内输入IP地址并回车。进入共享页面后可以看到共享文件和打印机&#xff0c;点击连接时无反应一分钟后弹出错误提示“操作无法完成错误0x00000709”&…

2021-12-06 自动化专业C语言上机作业参考答案03

上机练习03 p265.c /* 编写一程序P265.C实现以下功能先从键盘读入7个数据(依次为2实数、3整数、2字符)&#xff0c;然后按示例格式倒序输出这7个数据。 编程可用素材&#xff1a;printf("请输入7个数据(依次为2实数、3整数、2字符): ")、printf("\n这7个数据倒…

L2TP连接错误 789 解决方法

错误提示 789 错误 , 提示 L2TP 协议与远程连接出错。 L2TP 连接尝试失败&#xff0c;因为安全层在与远程计算机进行初始协商时遇到处理错误 解决方法 单击“开始”&#xff0c;单击“运行”&#xff0c;键入regedit&#xff0c;打开注册表编辑器 找到下面的注册表子项&am…

G729

G.729是国际电信联盟&#xff08;ITU&#xff0c;International Telecommunication Union&#xff09;于1996年推出的采用共轭结构-代数码激励线性预测&#xff08;CS-ACELP&#xff0c; Conjugate-Structure Algebraic-Code- Excited Linear-Predication&#xff09;技术的具有…

爱立信面向中国市场推出新一代中频段产品;中石化物探院与浪潮合作提升大数据平台 | 全球TMT...

大公司动向 爱立信面向中国市场推出新一代中频段Massive MIMO产品系列。爱立信全新超轻中频段Massive MIMO 5G无线产品AIR 6419&#xff0c;作为其天线&射频集成型无线产品组合&#xff08;Antenna-Integrated Radio, AIR&#xff09;的一员&#xff0c;专为简化运营商的中…

打印机无法连接0x000000709

1.打印机共享连接报错0x000000709 尝试&#xff1a;重启打印服务print 、net use清除网络连接&#xff0c;测试电脑win10使用管理员账户连接共享打印机 2.其他电脑报错&#xff1a;未授予用户在此计算机上的请求登录类型 win7 解决&#xff1a;1.打开“控制面板”–“管理工具”…

最短路径问题-spfa

队列优化后的Bellman-Ford算法 SPFA 最短路径快速算法&#xff0c;Shortest Path Faster Algorithm n n n 代表图的顶点数量&#xff0c; m m m 代表图的边的数量 平均时间复杂度 O ( m ) \Omicron(m) O(m) 最坏时间复杂度 O ( n m ) \Omicron(nm) O(nm) 关于SPFA的最坏…