TTP229BFS電容式觸摸鍵盤測試程序及驅動—STM32F407(庫函數版串口測試)


一、配置

 

(1) STM32設置

USART1

1 #define SCL PAout(1)        //2-線串行時鍾輸入端口
2 #define SDO PAin(4)        //2-線串行通訊方式下為數據輸出端口

(2) TTP229設置

TP0=0,TP2 = 0,TP7 = 0,其余默認為1

2線串行輸入——CMOS低電平有效輸出

有效按鍵最大輸入時間設定為80s

二、程序代碼

 1 #include "stm32f4xx.h"
 2 #include "usart.h"
 3 #include "delay.h"
 4 #include "TTP229BFS.h"
 5 
 6 int main(void)
 7 {
 8     //unsigned char a = 0;
 9     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
10     uart_init(128000);
11     delay_init(168);
12     TTP_GPIOInit();
13     while(1)
14     {
15         delay_ms(500);
16         printf("輸入的鍵值為:%d\r\n",TTP229_WRITE());
17     }
18 }
main.c
 1 #ifndef TTP229BFS_H
 2 #define TTP229BFS_H
 3 
 4 #define SCL PAout(1)        //2-線串行時鍾輸入端口
 5 #define SDO PAin(4)            //2-線串行通訊方式下為數據輸出端口
 6 
 7 void TTP_GPIOInit(void);
 8 unsigned char TTP229_WRITE(void);
 9 
10 #endif
TTP229BFS.h
 1 #include "TTP229BFS.h"
 2 #include "stm32f4xx.h"
 3 #include "delay.h"
 4 /********************************************************************
 5 函數原型:void TTP_GPIOInit(void);
 6 功能:TTP IO初始化
 7 輸入參數:無
 8 返回值:無
 9 ********************************************************************/
10 void TTP_GPIOInit(void)
11 {
12     GPIO_InitTypeDef  GPIO_InitStructure;
13     //時鍾使能(A)
14     RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
15     //IO口配置PA1輸入
16     GPIO_InitStructure.GPIO_Pin =     GPIO_Pin_1;
17   GPIO_InitStructure.GPIO_Mode =     GPIO_Mode_OUT;
18   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
19   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
20   GPIO_InitStructure.GPIO_PuPd =     GPIO_PuPd_UP;
21   GPIO_Init(GPIOA, &GPIO_InitStructure);
22     //IO口配置PA4輸出
23     GPIO_InitStructure.GPIO_Pin =     GPIO_Pin_4;
24   GPIO_InitStructure.GPIO_Mode =     GPIO_Mode_IN;
25   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
26   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
27   GPIO_InitStructure.GPIO_PuPd =     GPIO_PuPd_UP;
28   GPIO_Init(GPIOA, &GPIO_InitStructure);
29 }
30 /********************************************************************
31 函數原型:unsigned char TTP_READ(void);
32 功能:TTP229鍵值獲取
33 輸入參數:無
34 返回值:鍵值
35 ********************************************************************/
36 unsigned char TTP229_WRITE(void)
37 {
38     unsigned char i;
39     unsigned char key = 0;
40     SDO = 0;
41     delay_us(93);//93us
42     SDO = 1;
43     delay_us(15);//15us
44     for(i = 0;i <= 16;i++)
45     {
46         SCL = 0;
47         if(!SDO)    key += i;
48         delay_us(3);
49         SCL = 1;
50         delay_us(3);//150KHz
51     }
52     delay_ms(2);
53     return key;
54 }
TTP229BFS.c


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM