HW TSI

来自拉普兰德Wiki
跳转至: 导航搜索

固件说明

HW_TSI.c和HW_TSI.h是TSI触摸感应输入模块的固件驱动文件,这里定义了该模块的初始化函数、反初始化、触摸标志判断等相关函数。

结构体

TSI_InitTypeDef

变量 描述 取值 初始化
uint16 TSI_Chs 选择要初始化的通道 TSI_Ch0~TSI_Ch15-对应的引脚见TsiChxEnum_Type枚举中的定义 必须初始化
uint8 TSI_ScanTriggerMode 选择触发扫描的模式

TSI_SCAN_SOFT-软件触发扫描
TSI_SCAN_PERIOD-周期触发扫描

不必须初始化,默认TSI_SCAN_SOFT
uint8 TSI_EndScanOrOutRangeInt 选择扫描结束触发中断还是范围溢出触发中断

TSI_OUTOFRANGE_INT-范围溢出中断
TSI_ENDOFDCAN_INT-扫描结束中断

不必须初始化,默认TSI_OUTOFRANGE_INT
boolean TIS_ErrIntEnable 使能错误中断 TRUE-使能
FALSE-禁用
不必须初始化,默认FALSE
TSI_ISR_CALLBACK TSI_EndScanIsr 扫描结束中断回调函数 函数必须为无返回值,无参数(eg. void isr(void);) 不必须初始化、如未初始化则不会触发中断
TSI_ISR_CALLBACK TSI_OutRangeIsr 范围溢出中断回调函数 函数必须为无返回值,无参数(eg. void isr(void);) 不必须初始化、如未初始化则不会触发中断
TSI_ISR_CALLBACK TSI_ErrIsr 错误中断回调函数 函数必须为无返回值,无参数(eg. void isr(void);) 不必须初始化、如未初始化则不会触发中断
boolean TSI_IsInitSelfCal 是否使能初始化自调准 TRUE-使能
FALSE-禁用
不必须初始化,默认FALSE

变量

函数

LPLD_TSI_Init()

函数原型

uint8 LPLD_TSI_Init(TSI_InitTypeDef);

描述

TSI通用初始化函数

形参

类型 名称 描述 取值
TSI_InitTypeDef tsi_init_struct TSI初始化结构体 结构体定义见TSI_InitTypeDef

输出

0--配置错误
1--配置成功

LPLD_TSI_Deinit()

函数原型

void LPLD_TSI_Deinit(void);

描述

TSI反初始化函数

形参

输出

LPLD_TSI_IsChxTouched()

函数原型

boolean LPLD_TSI_IsChxTouched(uint8);

描述

编号为ch_num的通道是否有触摸发生

形参

类型 名称 描述 取值
uint8 ch_num 通道x的数字 0~15

输出

TRUE-有触摸
FALSE-未触摸

其他

LPLD_TSI_ClearEndScanFlag()

宏定义原型

#define LPLD_TSI_ClearEndScanFlag()   (TSI0->GENCS|=TSI_GENCS_EOSF_MASK)

描述

清除扫描结束标志

形参

输出

LPLD_TSI_ClearOutRangeFlag()

宏定义原型

#define LPLD_TSI_ClearOutRangeFlag()  (TSI0->GENCS|=TSI_GENCS_OUTRGF_MASK)

描述

清除范围溢出标志

形参

输出

LPLD_TSI_ClearEndScanFlagChx()

宏定义原型

#define LPLD_TSI_ClearEndScanFlagChx(CHX)   (TSI0->STATUS|=CHX)

描述

清除通道CHX的扫描接触标志

形参

类型 名称 描述 取值
uint16 CHX TSI通道掩码 TSI_Ch0~TSI_Ch15

输出

LPLD_TIS_ClrarErrorFlagChx()

宏定义原型

#define LPLD_TIS_ClrarErrorFlagChx(CHX)     (TSI0->STATUS|=(CHX<<16))

描述

清除通道CHX的错误标志

形参

类型 名称 描述 取值
uint16 CHX TSI通道掩码 TSI_Ch0~TSI_Ch15

输出

LPLD_TSI_IsChxOutRange()

宏定义原型

#define LPLD_TSI_IsChxOutRange(CHX)   (TSI0->STATUS&CHX)

描述

通道CHX是否范围溢出

形参

类型 名称 描述 取值
uint16 CHX TSI通道掩码 TSI_Ch0~TSI_Ch15

输出

大于0--溢出
0--未溢出

LPLD_TSI_IsChxError()

宏定义原型

#define LPLD_TSI_IsChxError(CHX)      (TSI0->STATUS&(CHX<<16))

描述

通道CHX是否错误

形参

类型 名称 描述 取值
uint16 CHX TSI通道掩码 TSI_Ch0~TSI_Ch15

输出

大于0--错误
0--未出错


LPLD_TSI_EnableIrq()

宏定义原型

#define LPLD_TSI_EnableIrq()     enable_irq(TSI0_IRQn)

描述

使能TSI中断

形参

输出

LPLD_TSI_DisableIrq()

宏定义原型

#define LPLD_TSI_DisableIrq()    disable_irq(TSI0_IRQn)

描述

禁用TSI中断

形参

输出

TsiChxEnum_Type枚举

TsiChxEnum_Type枚举定义了TSI模块的通道掩码,下表是该枚举的定义。开发者在输入参数时序选择通道一列。

通道 对应引脚
TSI_Ch0 PTB0
TSI_Ch1 PTA0
TSI_Ch2 PTA1
TSI_Ch3 PTA2
TSI_Ch4 PTA3
TSI_Ch5 PTA4
TSI_Ch6 PTB1
TSI_Ch7 PTB2
TSI_Ch8 PTB3
TSI_Ch9 PTB16
TSI_Ch10 PTB17
TSI_Ch11 PTB17
TSI_Ch12 PTB19
TSI_Ch13 PTB19
TSI_Ch14 PTB19
TSI_Ch15 PTC2