娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年10月05日(星期六)

正在發生

2018年10月05日 | STM32f4電容觸摸按鍵實驗代碼(02)

發布者:創意旋律 來源: eefocus關鍵字:STM32f4  電容觸摸  按鍵實驗 手機看文章 掃描二維碼
隨時隨地手機看文章

STM32f4————電容觸摸按鍵實驗代碼(02)

?

//定時器?2通道2?輸入捕獲配置????

//arr:自動重裝值

//psc:時鐘預分頻數

void TIM2_CH1_Cap_Init(u32 arr,u16 psc)

{

??GPIO_InitTypeDef??GPIO_InitStructure;??

??????TIM_TimeBaseInitTypeDef??TIM_TimeBaseStructure;

??TIM_ICInitTypeDef??TIM2_ICInitStructure;

??

??RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);???//TIM2時鐘使能?????

??RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //使能PORTA時鐘

??

??GPIO_PinAFConfig(GPIOA,GPIO_PinSource5,GPIO_AF_TIM2); //PA5復用位定時器2

?

????GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //GPIOA5

??GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//復用功能

??GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//速度?100MHz

??GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽復用輸出

??GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//不帶上下拉??

??GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化PA5

?

????//初始化?TIM2???

??TIM_TimeBaseStructure.TIM_Period = arr; //設定計數器自動重裝值????

??TIM_TimeBaseStructure.TIM_Prescaler =psc;????//預分頻器????????

??TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;

??TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上計數

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //??初始化定時器2

??//初始化通道?1

?????TIM2_ICInitStructure.TIM_Channel = TIM_Channel_1; //選擇輸入端??IC1映射到TIM2

?????TIM2_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;??//上升沿捕獲

??????TIM2_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;??

?????TIM2_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;????//配置輸入分頻,不分頻??

?????TIM2_ICInitStructure.TIM_ICFilter = 0x00;//IC2F=0000?配置輸入濾波器?不濾波

?????TIM_ICInit(TIM2, &TIM2_ICInitStructure);//初始化?TIM2 IC1

??????????????????????????????

??TIM_Cmd(TIM2,ENABLE );????//使能定時器?2

}

此部分代碼包含?6?個函數,我們將介紹其中?4?個比較重要的函數:TIM2_CH1_Cap_Init、TPAD_Get_Val、TPAD_Init和?TPAD_Scan。

首先介紹TIM2_CH1_Cap_Init函數,該函數和上一章的輸入捕獲函數基本一樣,不同的是,這里我們設置的是?TIM2?上一章是?TIM5。通過該函數的設置,我們將可以捕獲?PA5?上的上升沿,同樣TIM2也是?32?位定時器。

我們再來看看?TPAD_Get_Val?函數,該函數用于得到定時器的一次捕獲值。該函數先調用TPAD_Reset,將電容放電,同時設置通過調用函數TIM_SetCounter(TIM2,0)將計數值TIM2_CNT設置為?0,然后死循環等待發生上升沿捕獲(或計數溢出),將捕獲到的值(或溢出值)作為返回值返回。

接著我們介紹?TPAD_Init?函數,該函數用于初始化輸入捕獲,并獲取默認的?TPAD?值。該函數有一個參數,用來傳遞系統時鐘,其實是為了配置?TIM2_CH1_Cap_Init?為?1us?計數周期。在該函數中連續?10?次讀取TPAD?值,將這些值升序排列后取中間?6?個值再做平均(這樣做的目的是盡量減少誤差),并賦值給tpad_default_val,用于后續觸摸判斷的標準。??

最后,我們來看看?TPAD_Scan?函數,該函數用于掃描?TPAD?是否有觸摸,該函數的參數mode,用于設置是否支持連續觸發。返回值如果是?0,說明沒有觸摸,如果是?1,則說明有觸摸。該函數同樣包含了一個靜態變量,用于檢測控制,類似第八章的KEY_Scan?函數。所以該函數同樣是不可重入的。在函數中,我們通過連續讀取?3?次(不支持連續按的時候)TPAD?的值,取這他們的最大值,和tpad_default_val+TPAD_GATE_VAL?比較,如果大于則說明有觸摸,如果小于,則說明無觸摸。其中tpad_default_val?是我們在調用?TPAD_Init?函數的時候得到的值,而TPAD_GATE_VAL則是我們設定的一個門限值(這個大家可以通過實驗數據得出,根據實際情況選擇適合的值就好了),這里我們設置為?100。該函數,我們還做了一些其他的條件限制,

讓觸摸按鍵有更好的效果,這個就請大家看代碼自行參悟了。

tpad.h?頭文件部分代碼比較簡單,這里不做介紹。

接下來我們看看主函數代碼如下:

int main(void)

{?????

u8 t=0;??

??NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2

??delay_init(168);?????//初始化延時函數

??uart_init(115200);????//初始化串口波特率為115200

??LED_Init();????????????//初始化?LED

??TPAD_Init(8); ???????//初始化觸摸按鍵,以?84/4=21Mhz頻率計數

?????while(1)

??{??????????????????????????????????

??????if(TPAD_Scan(0))??//成功捕獲到了一次上升沿(此函數執行時間至少15ms)

????{

??????LED1=!LED1;????//LED1取反

????}

????t++;

????if(t==15)??????

????{

??????t=0;???LED0=!LED0;????//LED0取反,提示程序正在運行

????}

????delay_ms(10);

??}

}

該?main函數比較簡單,TPAD_Init(8)函數執行之后,就開始觸摸按鍵的掃描,當有觸摸的時候,對DS1?取反,而DS0?則有規律的間隔取反,提示程序正在運行。注意在修改main函數之后,還需要在main.c里面添加tpad.h頭文件,否則會報錯哦。

這里還要提醒一下大家,不要把uart_init(115200);去掉,因為在TPAD_Init函數里面,我們有用到?printf,如果你去掉了uart_init,就會導致printf無法執行,從而死機。??

至此,我們的軟件設計就完成了。


關鍵字:STM32f4  電容觸摸  按鍵實驗 引用地址:STM32f4電容觸摸按鍵實驗代碼(02)

上一篇:單片機AD轉換匯總
下一篇:STM32f4輸入捕獲實驗代碼

推薦閱讀

目錄:11、STMFD和LDMFD指令1)STMFD SP! ,{R0-R7,LR} 2)LDMFD SP! ,{R0-R7,LR}99、偽指令1)PROC偽指令 2)EXPORT偽指令 3)IMPORT偽指令 4)DCD與DCDU偽指令5)ALIGN偽指令 6)AREA偽指令 7)SPACE和DCD偽指令的區別 8)ENTRY偽指令-----------------------------------------說明:ARM單片機匯編指令...
近日,格蘭仕宣布與SiFive China聯合開發了AIoT芯片——BF-細滘、NB-獅山,會用于所有格蘭仕的家電產品,以加速實現智能家居。 同時,格蘭仕在最近上市的16款新產品,包括微波爐、空調、冰箱等,已全部搭載了BF-細滘這款物聯網芯片。 接下來,雙方還將開發升級的物聯網芯片BF-獅山,以及應用于智能家居的獅山操作系統。據了解,這些芯片和操作系統均應用R...
談到醫療機器人,許多人都會起到美國Intuitive surgical公司研發的達芬奇機器人,它是世界第一款手術機器人,代表著機器人在醫療行業應用的重要里程碑。不過,達芬奇仍然是由人類控制的機器系統。隨著人工智能技術的進步發展,醫療行業又發生了巨大的變化。利用機器學習的方法,可以對不同病例進行學習,再結合所有醫學知識庫的知識,能夠快速診斷出病情...

史海拾趣

問答坊 | AI 解惑

可控硅/最近在做可控硅的東西,借鑒的東西

可控硅是可控硅整流元件的簡稱,是一種具有三個PN 結的四層結構的大功率半導體器件,一般由兩晶閘管反向連接而成.它的功用不僅是整流,還可以用作無觸點開關以快速接通或切斷電路,實現將直流電變成交流電的逆變,將一種頻率的交流電變成另一種頻率的 ...…

查看全部問答∨

PRL:科學家實現在冷原子氣體中成功存儲光

向未來廣域量子通信網絡的最終實現又邁出重要一步 據美國《每日科學》網站報道,美國麻省理工學院科學家在冷原子中量子存儲和波動研究領域有了新突破,而這方面的技術正是設計量子信息網絡的關鍵,這使研究向未來廣域量子通信網絡的最終實現又邁 ...…

查看全部問答∨

液晶監視器的常見故障

監視器作為矩陣控制系統的監視器終端時,為什么在矩陣控制器切換圖像是會出現一段時間的不同步現象?     在監控系統中,每路前端設備(如攝像機)等輸出的圖像信號中的場同步信號如果存在相位差,則矩陣控制器切換各路圖像信號時,監視 ...…

查看全部問答∨

前臺顯示 字符串 為 亂碼

EVC 下   這樣使用Format 有問題嗎 ? void CTestDlg::OnResult() {         UpdateData(true);         m_RESULT.Format(_T("%s"),"123");         Update ...…

查看全部問答∨

關于wince 5.0的sdk 與vs2005的問題

首次安裝wince 5.0的開發環境,不知道該如何安裝 弱弱的問一下大家是怎么安裝wince 5.0的開發環境的? 我裝了pb 5.0 Microsoft ActiveSync 4.5 evc 4.0 編譯映像后生成sdk。 安裝sdk通過evc 將程序下的板子上沒有問題。 但要求用vs2005開發軟 ...…

查看全部問答∨

如何用mc39i上網

小弟是做軟件開發的,對硬件一點不懂,現在要做一個通過gprs和ppp上網的程序,哪位兄弟能給個事例或文檔什么的看看,不勝感激…

查看全部問答∨

U盤文件保護問題,高手看過來,急急急急急急!

可以對U盤里的文件進行保護,具有防復制,防剪貼,防刪除,防改名功能,但exe文件仍然可以打開運行,這個是不是需要寫驅動?要怎么寫?…

查看全部問答∨

mcu選擇

做儀器需要一款MCU. 可擴展外部總線. 帶LCD控制器可驅動彩色TFT帶內部12bit AD、DA、目前我只對AT和STM32稍微熟..暫時STM32更適合..可FSMC只有16bit總線.擴展SRAM性能應該會受影響.(如果將變量存到外部SRAM).. 另外FSMC也 ...…

查看全部問答∨

stm8s用晶體確實很差!

                                 但是改用有源晶體有明顯改善!…

查看全部問答∨

各種仿真,有點分不清楚

RTL級仿真,門級仿真,布局布線仿真,后仿真,前仿真,功能仿真,時序仿真 他們之間的關系弄的不是很清楚,是不是這樣理解: RTL級仿真:只編譯代碼,不進行綜合的仿真,屬于前仿真(綜合前仿真); 門級仿真:綜合代碼后,產生門電路映射的仿真 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 六枝特区| 雅安市| 榆林市| 黄平县| 鲁甸县| 年辖:市辖区| 高密市| 武城县| 淳化县| 宁河县| 科尔| 方正县| 吐鲁番市| 武汉市| 驻马店市| 报价| 伊宁县| 福安市| 绍兴市| 淳化县| 邵武市| 左贡县| 遵义县| 天等县| 灯塔市| 沾益县| 邯郸县| 夹江县| 宽城| 肇源县| 金湖县| 巴南区| 页游| 佛冈县| 莆田市| 西林县| 平遥县| 和田市| 怀远县| 沈阳市| 灌云县|