Type-C 长供电、上电即工作、无软关机,删除 app_boot/app_power 及 DP0 开关相关逻辑, 去掉空占位 app_fan_run 和无效的 usr_timer_pick_mode/rearm(数码管 4ms 扫描已 priority=1, 系统本来就不会进低功耗)。按键 5s 配对 / 12s OTA 改走 key.c 长按分级,去掉自计时与 1~5s 死区。 新增 app_defer,NVM/配对/OTA 只在 ISR 置位、在 500ms 任务上下文落地,避免再在 usr_timer 里写 flash。 规格书与注释同步精简。
43 lines
1.6 KiB
C
43 lines
1.6 KiB
C
/******************************************************************************
|
||
* @file bsp_ct1642.h
|
||
* @brief CBR3 CT1642 类数码管驱动:18bit 移位、锁存、送出
|
||
* @author cyWu <1917507415@qq.com>
|
||
* @date 2026.08.29
|
||
* @version V1.0.1,IO 分离:CT1642 独立 PG0=CLK/PG1=DATA(飞线),AHT20
|
||
* 独占 PC4/PC5,无总线共享机制
|
||
*
|
||
* @note PG0=CLK,PG1=DATA,独立引脚、无总线锁,可随时调用。
|
||
* 协议:一帧 18bit(C1-C4 位选 + 6 位保留 + Q2-Q9 段码),CLK 上升沿采样
|
||
* DATA(DATA 只在 CLK=低时改变);发完 CLK=高 时 DATA 上升沿=锁存,
|
||
* CLK=低 时 DATA 上升沿=输出刷新。
|
||
******************************************************************************/
|
||
|
||
#ifndef __BSP_CT1642_H__
|
||
#define __BSP_CT1642_H__
|
||
|
||
#include <stdint.h>
|
||
|
||
/**
|
||
* @brief 初始化 PG0/PG1 为推挽输出(CLK/DATA 初始 0)
|
||
* @note app_disp_init() 内调用;被 BOARD_DISP_ENABLE 编译开关保护
|
||
* @return 无
|
||
*/
|
||
void bsp_ct1642_init(void);
|
||
|
||
/**
|
||
* @brief 7 段数码管数字转段码(共阴,A=bit0 ... G=bit6,DP=bit7)
|
||
* @param digit 0~9;10='-'(G 段);11=全灭
|
||
* @return 段码
|
||
*/
|
||
uint8_t bsp_ct1642_seg(uint8_t digit);
|
||
|
||
/**
|
||
* @brief 发一帧刷新一位:18bit(C1-C4 位选 + 6 保留 + Q2-Q9 段码,LSB 先)
|
||
* @param seg 段码(bit7=DP ... bit0=A,先发 bit0→Q2)
|
||
* @param com COM 位选掩码(bit3=C4 ... bit0=C1,仅 1 位置位;硬件低有效内部取反)
|
||
* @return 无
|
||
*/
|
||
void bsp_ct1642_send_frame(uint8_t seg, uint8_t com);
|
||
|
||
#endif /* __BSP_CT1642_H__ */
|