sggt/App/TM1650/tm1650.h

42 lines
1.9 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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