42 lines
1.9 KiB
C
42 lines
1.9 KiB
C
#ifndef __TM1650_H
|
||
#define __TM1650_H
|
||
#include "i2c.h"
|
||
#include "data_type_def.h"
|
||
#include "stm32f4xx_hal.h"
|
||
|
||
#define INIT_MODE
|
||
|
||
#define COMMAND_SET_PARAMETER 0x48 // 设置系统参数命令
|
||
#define COMMAND_READ_KEY_DATA 0x49 // 读取按键数据命令
|
||
|
||
#define PARAMETER_BRIGHTNESS_NORMAL 0x00
|
||
#define PARAMETER_BRIGHTNESS_ONE 0x10
|
||
#define PARAMETER_BRIGHTNESS_TWO 0x20
|
||
#define PARAMETER_BRIGHTNESS_THREE 0x30
|
||
#define PARAMETER_BRIGHTNESS_FOUR 0x40
|
||
#define PARAMETER_BRIGHTNESS_FIVE 0x60
|
||
#define PARAMETER_BRIGHTNESS_SIX 0x60
|
||
#define PARAMETER_BRIGHTNESS_SEVEN 0x70
|
||
|
||
#define PARAMETER_SEGMENT_MODE_EIGHT 0x00 // 8段输出(默认)
|
||
#define PARAMETER_SEGMENT_MODE_SEVEN 0x08 // 7段输出,用于键盘读出时,16脚DP/KP为键盘扫描标识输出
|
||
// 7段模式且开屏时(48H+09H):
|
||
// 在没有按键按下时DP/KP脚输出高电平
|
||
// 在有按键按下时,DP/KP脚会输出低电平
|
||
// 当下一次按键数据被读取后(或关屏)DP/KP脚输出高电平
|
||
// KP可以用作是否有按键的指示,连接MCU的外部中断脚
|
||
#define PARAMETER_WORK_MODE_RUNNING 0x00 // 正常工作模式
|
||
#define PARAMETER_WORK_MODE_STANDBY 0x04 // 待机工作模式
|
||
|
||
#define PARAMETER_DISPLAY_MODE_OFF 0x00 // 关闭屏显示
|
||
#define PARAMETER_DISPLAY_MODE_ON 0x01 // 打开屏显示
|
||
// 当发送开屏命令且为正常工作模式时,DIG1-DIG4开始进行扫描
|
||
// 所以,读键盘时也需要开屏
|
||
extern BOOL kp_flag;
|
||
extern uint8_t key;
|
||
|
||
void tm1650_init(I2C_HandleTypeDef *hi2c);
|
||
void tm1650_read_key(I2C_HandleTypeDef *hi2c, BOOL *kp_flag, uint16_t cmd, uint8_t *key);
|
||
|
||
#endif
|