

下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、嵌式單機基礎篇()之電容觸摸按鍵stm32F1 電容觸摸按鍵詳解1、RC充放電電路原理:(1)如上圖所,當開關關閉時,電容經過電阻R充電,最開始的瞬間電流為最值V1/R,隨后隨著Vt越來越,電流變,電容充電速度變慢,當V1=Vt時,電流為0(2)RC電路充放電公式:Vt= V0+(V1-V0)* 1-exp(-t/RC)V0 為電容上的初始電壓值;V1 為電容最終可充到或放到的電壓值;Vt 為t時刻電容上的電壓值。R 為充電電阻C 為電容容值e 為然底數t 為充電時間如果V0為0,也就是從0V開始充電。那么公式簡化為:Vt= V1* 1-exp(-t/RC)結論:同樣的條件下,電容值C跟時間值
2、t成正關系,電容越,充電到達某個臨界值的時間越長。2、電容觸摸按鍵原理:R:外接電容充放電電阻。Cs:TPAD和PCB間的雜散電容。Cx:指按下時,指和TPAD之間的電容。開關:電容放電開關,由STM32 IO代替。電容觸摸按鍵原理簡之就是,當指按下觸摸按鍵的時候,相當于充電電容增,那么所需的充電時間就變長,根據電容充電時間的差異來判斷是否按下了觸摸按鍵上圖的開關作是,當開關閉合時,電容放電,當開關斷開時,電容充電。IO代替的話是需要先將IO配置成推挽輸出,再將IO置低電平0,來實現電容放電,再將IO配置成浮空輸,相當于斷開開關,此時電容開始充電3、程序實現:觸摸按鍵程序與原理#define
3、TPAD_ARR_MAX_VAL 0XFFFF /最的值vu16 tpad_default_val0;/空載的時候(沒有按下),計數器需要的時間第步:初始化,也就是先放電后充電RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ); /使能端時鐘GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1; /PA1 端配置GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP; /推挽輸出GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;GPIO_Res
4、etBits(,GPIO_Pin_1);/PA.1輸出0,放電delay_ms(5);TIM_SetCounter(TIM5,0); /0TIM_ClearITPendingBit(TIM5, TIM_IT_CC2|TIM_IT_Update); /清除中斷標志/設置GPIOA.1為浮空輸GPIO_InitStructure.GPIO_ModeGPIO_Mode_IN_FLOATING; /浮空輸GPIO_Init(, GPIO_InitStructure);第步:輸捕獲,上升沿捕獲/定時器2通道2輸捕獲配置void TIM5_CH2_Cap_Init(u16 arr,u16 psc)GPIO
5、_InitStructure.GPIO_Pin =GPIO_Pin_1; /PA1端配置GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz; /速度50MHzGPIO_InitStructure.GPIO_ModeGPIO_Mode_IN_FLOATING; /浮空輸GPIO_Init(, GPIO_InitStructure); /設置為浮空輸TIM_TimeBaseStructure.TIM_Period =arr; /設定計數器動重裝值TIM_TimeBaseStructure.TIM_Prescaler psc; /預分頻器TIM_TimeB
6、aseStructure.TIM_ClockDivision =TIM_CKD_DIV1; /設置時鐘分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode =TIM_CounterMode_Up; /TIM向上計數模式TIM_TimeBaseInit(TIM5, TIM_TimeBaseStructure); /根據TIM_TimeBaseInitStruct中指定的參數初始化TIMx的時間基數單位/初始化通道2TIM5_ICInitStructure.TIM_Channel =TIM_Channel_2; /CC1S=01 選擇輸端IC
7、2映射到TI5上TIM5_ICInitStructure.TIM_ICPolarity =TIM_ICPolarity_Rising; /上升沿捕獲TIM5_ICInitStructure.TIM_ICSelection =TIM_ICSelection_DirectTI;TIM5_ICInitStructure.TIM_ICPrescaler =TIM_ICPSC_DIV1; /配置輸分頻,不分頻TIM5_ICInitStructure.TIM_ICFilter =0 x03;/IC2F=0011 8個定時器時鐘周期濾波TIM_ICInit(TIM5, TIM5_ICInitStructur
8、e);/初始化I5 IC2TIM_Cmd(TIM5,ENABLE); /使能定時器50開始到達上升沿的時間u16 TPAD_Get_Val(void)TPAD_Reset();while(TIM_GetFlagStatus(TIM5, TIM_IT_CC2) =)/等待捕獲上升沿if(TIM_GetCounter(TIM5)-500)return TIM_GetCounter(TIM5);/超時了,直接返回CNT的值;return TIM_GetCapture2(TIM5);第四步,獲取時間最值u16 TPAD_Get_MaxVal(u8 n)u16 temp0;tempTPAD_Get_Va
9、l();/得到次值TIM5_CH2_Cap_Init(,psc-1);/1Mhz的頻率計數for(0;10;)/連續讀取10次delay_ms(10);for(0;9;)/排序if(bufbuf)/升序排列tempbuf;bufbuf;for(2;8;)tempbuf;/取中間的6個數據進平均tpad_default_valtemp/6;if(tpad_default_val/2)return 1;/初始化遇到超過TPAD_ARR_MAX_VAL/2的數值,不正常!第六步,掃描并判斷是否觸摸按鍵/mode:0,不持連續觸發(按下次必須松開才能按下次);1,持連續觸發(可以直按下)/返回值:0,
10、沒有按下;1,有按下;#define TPAD_GATE_VAL 100 /觸摸的門限值,也就是必須于tpad_default_val+TPAD_GATE_VAL,才認為是有效觸摸.u8 TPAD_Scan(u8 mode)static u8 keyen0; /0,可以開始檢測;0,還不能開始檢測u8 res0;u8 sample3; /默認采樣次數為3次u16 rval;if(mode)sample6; /持連按的時候,設置采樣次數為6次keyen0; /持連按rvalTPAD_Get_MaxVal(sample);if(rval(tpad_default_valTPAD_GATE_VAL)/于tpad_default_val+TPAD_GATE_VAL,有效if(keyen0)res1; /keyen=0,有效/printf(r:%drn,rval);keyen3; /少要再過3次之后才能按鍵有效if(keyen)keyen-;第七步,主函數u8 t0; delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);/設置中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 珠寶首飾行業直播營銷實戰技巧考核試卷
- 寵物友好郵輪旅行船上寵物友好住宿條件考核試卷
- 稻谷種植新型農業經營主體培育考核試卷
- 玩具初創企業融資渠道考核試卷
- 禮儀用品行業市場營銷策劃考核試卷
- 紡紗企業的技術引進與轉化考核試卷
- 石棉水泥制品的安全生產事故案例分析考核試卷
- 電信服務在農業現代化中的作用考核試卷
- 稻谷加工產業鏈中游企業發展戰略考核試卷
- 武漢大學《超分子藥物》2023-2024學年第二學期期末試卷
- 知識清單新思維小學英語2B
- -第八版內科冠心病課件
- 2024年02月湖南韶山思政教育實踐中心合同聘用制教師招考聘用筆試近6年高頻考題難、易錯點薈萃答案帶詳解附后
- 國家開放大學《Python語言基礎》實驗4:條件分支結構基本應用參考答案
- 幼小銜接家庭指導手冊
- 內分泌科常見急危重癥搶救流程
- 2024年河南工業和信息化職業學院高職單招(英語/數學/語文)筆試歷年參考題庫含答案解析
- 后勤人員保密知識講座
- 肝癌射頻消融術
- 2023云棲大會:PolarDB for AI -從數據管理走向數據智能基礎設施
- 血常規報告單
評論
0/150
提交評論