




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、(1)GPIO_Mode_AIN 模擬輸入 (2)GPIO_Mode_IN_FLOATING 浮空輸入(3)GPIO_Mode_IPD 下拉輸入(4)GPIO_Mode_IPU 上拉輸入(5)GPIO_Mode_Out_OD 開漏輸出(6)GPIO_Mode_Out_PP 推挽輸出(7)GPIO_Mode_AF_OD 復用開漏輸出(8)GPIO_Mode_AF_PP 復用推挽輸出平時接觸的最多的也就是推挽輸出、開漏輸出、上拉輸入這三種推挽輸出:可以輸出高,低電平,連接數(shù)字器件;開漏輸出:輸出端相當于三極管的集電極. 要得到高電平狀態(tài)需要上拉電阻才行,一般來說,開漏是用來連接不同電平的器件,匹配
2、電平用的,因為開漏引腳不連接外部的上拉電阻時,只能輸出低電平。浮空輸入:由于浮空輸入一般多用于外部按鍵輸入,結(jié)合圖上的輸入部分電路,我理解為浮空輸入狀態(tài)下,IO的電平狀態(tài)是不確定的,完全由外部輸入決定,如果在該引腳懸空的情況下,讀取該端口的電平是不確定的。GPIO GPIO_Init函數(shù)初始化GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);/使能GPIOF時鐘/GPIOF9,F10初始化設(shè)置GPIO_InitStructure.GPIO_Pin = GPIO_Pin
3、_9 | GPIO_Pin_10;/LED0和LED1對應IO口GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;/普通輸出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;/推挽輸出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;/100MHzGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;/上拉GPIO_Init(GPIOF, &GPIO_InitStructure);/初始化GPIOF9,F102個讀取輸入電平函
4、數(shù):uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);作用:讀取某個GPIO的輸入電平。實際操作的是GPIOx_IDR寄存器。例如:GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5);/讀取GPIOA.5的輸入電平uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);作用:讀取某組GPIO的輸入電平。實際操作的是GPIOx_IDR寄存器。例如:GPIO_ReadInputData(GPIOA);/讀取GPIOA組中所有io口輸入電平
5、2個讀取輸出電平函數(shù):uint8_t GPIO_ReadOutputDataBit (GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);作用:讀取某個GPIO的輸出電平。實際操作的是GPIO_ODR寄存器。例如:GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_5);/讀取GPIOA.5的輸出電平uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);作用:讀取某組GPIO的輸出電平。實際操作的是GPIO_ODR寄存器。例如: GPIO_ReadOutputData(GPIOA);/讀取GPI
6、OA組中所有io口輸出電平4個設(shè)置輸出電平函數(shù):void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);作用:設(shè)置某個IO口輸出為高電平(1)。實際操作BSRRL寄存器void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);作用:設(shè)置某個IO口輸出為低電平(0)。實際操作的BSRRH寄存器。void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);void GPIO_Write
7、(GPIO_TypeDef* GPIOx, uint16_t PortVal);后兩個函數(shù)不常用,也是用來設(shè)置IO口輸出電平。端口復用為復用功能配置過程-以PA9,PA10配置為串口1為例1、GPIO端口時鐘使能。RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);2、復用外設(shè)時鐘使能。比如你要將端口PA9,PA10復用為串口,所以要使能串口時鐘。RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); 3、端口模式配置為復用功能。 GPIO_Init()函數(shù)。GPIO_InitStructu
8、re.GPIO_Mode = GPIO_Mode_AF;/復用功能中斷優(yōu)先級設(shè)置步驟1、系統(tǒng)運行后先設(shè)置中斷優(yōu)先級分組。調(diào)用函數(shù):void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);整個系統(tǒng)執(zhí)行過程中,只設(shè)置一次中斷分組。2、針對每個中斷,設(shè)置對應的搶占優(yōu)先級和響應優(yōu)先級:void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);如果需要掛起/解掛,查看中斷當前激活狀態(tài),分別調(diào)用相關(guān)函數(shù)即可。獨立看門狗操作步驟1、取消寄存器寫保護: IWDG_WriteAccessCmd();2、設(shè)置獨
9、立看門狗的預分頻系數(shù),確定時鐘: IWDG_SetPrescaler();3、設(shè)置看門狗重裝載值,確定溢出時間: IWDG_SetReload();4、使能看門狗 IWDG_Enable();5、應用程序喂狗: IWDG_ReloadCounter();溢出時間計算:Tout=(42prer) rlr) /32 (M4)在主函數(shù),要設(shè)置中斷優(yōu)先級分組NVIC_PriorityGroupConfig();delay_init(168); 配置時鐘窗口看門狗配置過程void WWDG_Init(u8 tr,u8 wr,u32 fprer)1、使能看門狗時鐘:RCC_APB1PeriphClockC
10、md();2、設(shè)置分頻系數(shù):WWDG_SetPrescaler();3、設(shè)置上窗口值:WWDG_SetWindowValue();4、開啟提前喚醒中斷并分組(可選):WWDG_EnableIT(); NVIC_Init();WWDG_ClearFlag();/清除提前喚醒標志位5、使能看門狗:WWDG_Enable();7、編寫中斷服務函數(shù)WWDG_IRQHandler();1)喂狗:WWDG_SetCounter();2)清除標志位WWDG_ClearFlag();在主函數(shù),要設(shè)置中斷優(yōu)先級分組NVIC_PriorityGroupConfig();delay_init(168); 配置時鐘外
11、部中斷STM32F4的每個IO都可以作為外部中斷輸入。STM32F4的中斷控制器支持22個外部中斷/事件請求EXTI線015:對應外部IO口的輸入中斷。EXTI線16:連接到PVD輸出。EXTI線17:連接到RTC鬧鐘事件。EXTI線18:連接到USB OTG FS喚醒事件。EXTI線19:連接到以太網(wǎng)喚醒事件。EXTI線20:連接到USB OTG HS(在FS中配置)喚醒事件。EXTI線21:連接到RTC入侵和時間戳事件。EXTI線22:連接到RTC喚醒事件。外部中斷的一般配置步驟:1、使能SYSCFG時鐘: RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYS
12、CFG, ENABLE);2、初始化IO口為輸入。GPIO_Init();3、設(shè)置IO口與中斷線的映射關(guān)系。void SYSCFG_EXTILineConfig();4、初始化線上中斷,設(shè)置觸發(fā)條件等。EXTI_Init();5、配置中斷分組(NVIC),并使能中斷。NVIC_Init();6、編寫中斷服務函數(shù)。EXTIx_IRQHandler();1)清除中斷標志位EXTI_ClearITPendingBit();在主函數(shù),要設(shè)置中斷優(yōu)先級分組NVIC_PriorityGroupConfig();delay_init(168); 配置時鐘串口配置的一般步驟1、串口時鐘使能:RCC_APBxP
13、eriphClockCmd();GPIO時鐘使能:RCC_AHB1PeriphClockCmd();2、引腳復用映射:GPIO_PinAFConfig();3、GPIO端口模式設(shè)置:GPIO_Init(); 模式設(shè)置為GPIO_Mode_AF4、串口參數(shù)初始化:USART_Init();5、開啟中斷并且初始化NVIC(如果需要開啟中斷才需要這個步驟)NVIC_Init();USART_ITConfig();6、使能串口:USART_Cmd();7、編寫中斷處理函數(shù):USARTx_IRQHandler();8、串口數(shù)據(jù)收發(fā):void USART_SendData();/發(fā)送數(shù)據(jù)到串口,DRuin
14、t16_t USART_ReceiveData();/接受數(shù)據(jù),從DR讀取接受到的數(shù)據(jù)9、串口傳輸狀態(tài)獲?。篎lagStatus USART_GetFlagStatus();void USART_ClearITPendingBit();串口中斷服務函數(shù)不用清除中斷在主函數(shù),要設(shè)置中斷優(yōu)先級分組NVIC_PriorityGroupConfig();定時器中斷實現(xiàn)步驟void Timx_init(u8 arr,psc);1、能定時器時鐘。RCC_APB1PeriphClockCmd();2、初始化定時器,配置ARR,PSC。TIM_TimeBaseInit();TIM_TIConfig();/使能
15、更新中斷3、開啟定時器中斷,配置NVIC。NVIC_Init();4、使能定時器。TIM_Cmd();5、編寫中斷服務函數(shù)。TIMx_IRQHandler();1)判斷中斷模式TIM_GetTIStatus(TIMx,中斷模式);2)清除標志TIM_ClearITPendingBit();在主函數(shù),要設(shè)置中斷優(yōu)先級分組NVIC_PriorityGroupConfig();delay_init(168); 配置時鐘PWM輸出配置步驟:void TIM14_PWM_Init(u32 arr,u32 psc);1、使能定時器14和相關(guān)IO口時鐘。使能定時器14時鐘:RCC_APB1PeriphClo
16、ckCmd();使能GPIOF時鐘:RCC_AHB1PeriphClockCmd ();2、初始化IO口為復用功能輸出。函數(shù):GPIO_Init();GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; /復用功能3、GPIOF9復用映射到定時器14GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14); 4、初始化定時器:ARR,PSC等:TIM_TimeBaseInit();5、初始化輸出比較參數(shù):TIM_OC1Init();6、使能預裝載寄存器: TIM_OC1PreloadConfig(TIM14,
17、 TIM_OCPreload_Enable); 7、使能自動重裝載的預裝載寄存器允許位TIM_ARRPreloadConfig(TIM14,ENABLE);8、使能定時器TIM_Cmd(TIM14, ENABLE); / TIM149、不斷改變比較值CCRx,達到不同的占空比效果:TIM_SetCompare1();在主函數(shù),要設(shè)置中斷優(yōu)先級分組NVIC_PriorityGroupConfig();delay_init(168); 配置時鐘輸入捕獲的一般配置步驟:1、初始化定時器和通道對應IO的時鐘。2、初始化IO口,模式為復用:GPIO_Init();GPIO_InitStructure.G
18、PIO_Mode = GPIO_Mode_AF; 3、設(shè)置引腳復用映射:GPIO_PinAFConfig();4、初始化定時器ARR,PSCTIM_TimeBaseInit();5、初始化輸入捕獲通道TIM_ICInit();6、如果要開啟捕獲中斷,TIM_ITConfig();NVIC_Init();7、使能定時器:TIM_Cmd();8、編寫中斷服務函數(shù):TIMx_IRQHandler();RTCRTC日歷配置一般步驟1、使能PWR時鐘:RCC_APB1PeriphClockCmd();2、使能后備寄存器訪問: PWR_BackupAccessCmd();RCC_LSEConfig(RCC
19、_LSE_ON);/LSE開啟3、配置RTC時鐘源,使能RTC時鐘:RCC_RTCCLKConfig();RCC_RTCCLKCmd();如果使用LSE,要打開LSE:RCC_LSEConfig (RCC_LSE_ON);4、初始化RTC(同步/異步分頻系數(shù)和時鐘格式):RTC_Init ();5、設(shè)置時間:RTC_SetTime ();6、置日期:RTC_SetDate();RTC鬧鐘配置一般步驟1、RTC已經(jīng)初始化好相關(guān)參數(shù)。2、關(guān)閉鬧鐘:RTC_AlarmCmd(RTC_Alarm_A,DISABLE); 3、配置鬧鐘參數(shù):RTC_SetAlarm();4、開啟鬧鐘:RTC_AlarmCmd(RTC_Alarm_A,EABLE);5、清除標志位RTC_ClearITPendingBit(RTC_IT_ALRA); /清除鬧鐘(A)中斷EXTI_ClearITPendingBit(EXTI_Line
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)開發(fā)質(zhì)量管理計劃
- 人教版三年級英語下冊學習計劃
- 2025年護理人員院感培訓計劃
- 2025年美發(fā)師創(chuàng)意造型考核試卷:美發(fā)師顧客溝通技巧試題
- 班級家長會活動策劃計劃
- 二年級數(shù)學線上互動學習計劃
- 光伏電站投資回報率分析計劃
- 2025蘇教版小學六年級科學教學計劃
- 2025年人教版三年級英語下學期教學工作計劃
- 中國不繡綱鉚釘行業(yè)市場規(guī)模及投資前景預測分析報告
- GB/T 4326-2006非本征半導體單晶霍爾遷移率和霍爾系數(shù)測量方法
- 酒水購銷合同范本(3篇)
- GCP培訓考試題庫及參考答案(完整版)
- 乒乓球社團活動記錄
- 新時代中小學教師職業(yè)行為十項準則考核試題及答案
- 數(shù)據(jù)結(jié)構(gòu)-第6章-圖課件
- 《變態(tài)心理學與健康心理學》考試復習題庫150題(含答案)
- DB15T 489-2019 石油化學工業(yè)建設(shè)工程技術(shù)資料管理規(guī)范
- 皮內(nèi)針講課課件
- 村衛(wèi)生室靜脈輸液準入申請審批表
- 提高鋼柱安裝垂直度合格率QC成果PPT
評論
0/150
提交評論