一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過(guò)CH32V103定時(shí)器中斷控制LED燈閃爍

CHANBAEK ? 來(lái)源:CSDN-借過(guò)風(fēng)景 ? 作者:CSDN-借過(guò)風(fēng)景 ? 2023-01-31 14:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡(jiǎn)介

CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開(kāi)源指令集設(shè)計(jì)。 片上集成了時(shí)鐘安全機(jī)制、多級(jí)電源管理、通用DMA控制器。 此系列具有1路USB2.0主機(jī)/設(shè)備接口、多通道12位ADC轉(zhuǎn)換模塊、多通道TouchKey、多組定時(shí)器、多路IIC/USART/SPI接口等豐富的外設(shè)資源。

本章教程通過(guò)CH32V103開(kāi)發(fā)板板載兩個(gè)LED燈顯示程序運(yùn)行狀態(tài),具體情況如下:

(1)串口調(diào)式助手大約每隔500ms打印一次”Enter interrupt“;

(2)開(kāi)發(fā)板上LED1與LED2不停閃爍,其中,LED1閃爍較快,大約為100ms一次; LED2閃爍較慢,大約為500ms閃爍一次。

1、TIM簡(jiǎn)介及相關(guān)函數(shù)介紹

CH32V103定時(shí)器包含1個(gè)高級(jí)16位定時(shí)器、3個(gè)通用16位定時(shí)器,以及2個(gè)看門(mén)狗定時(shí)器和1個(gè)系統(tǒng)時(shí)基定時(shí)器。

高級(jí)控制定時(shí)器(TIM1)是一個(gè) 16 位的自動(dòng)裝載計(jì)數(shù)器,具有可編程的預(yù)分頻器。 除了完整的通用定時(shí)器功能外, 可以被看成是分配到 6 個(gè)通道的三相 PWM 發(fā)生器, 具有帶死區(qū)插入的互補(bǔ) PWM 輸出功能,允許在指定數(shù)目的計(jì)數(shù)器周期之后更新定時(shí)器進(jìn)行重復(fù)計(jì)數(shù)周期,剎車(chē)功能等。 高級(jí)控制定時(shí)器的很多功能都與通用定時(shí)器相同,內(nèi)部結(jié)構(gòu)也相同,因此高級(jí)控制定時(shí)器可以通過(guò)定時(shí)器鏈接功能與 TIM 定時(shí)器協(xié)同操作,提供同步或事件鏈接功能。

通用定時(shí)器(TIM2、TIM3和TIM4),其可同步運(yùn)行,每個(gè)定時(shí)器都有一個(gè) 16 位的自動(dòng)裝載遞加/遞減計(jì)數(shù)器、一個(gè)可編程的 16 位預(yù)分頻器和 4 個(gè)獨(dú)立的通道,每個(gè)通道都可用于輸入捕獲、輸出比較、 PWM 生成和單脈沖模式輸出。 其能通過(guò)定時(shí)器鏈接功能與高級(jí)控制定時(shí)器共同工作,提供同步或事件鏈接功能。 在調(diào)試模式下,計(jì)數(shù)器可以被凍結(jié),同時(shí) PWM 輸出被禁止,從而切斷由這些輸出所控制的開(kāi)關(guān)。 任意通用定時(shí)器都能用于產(chǎn)生 PWM 輸出。 每個(gè)定時(shí)器都有獨(dú)立的 DMA 請(qǐng)求機(jī)制。 這些定時(shí)器還能夠處理增量編碼器信號(hào),也能處理 1 至 3 個(gè)霍爾傳感器的數(shù)字輸出。

系統(tǒng)時(shí)基定時(shí)器(SysTick),這是內(nèi)核控制器自帶的一個(gè)定時(shí)器,用于產(chǎn)生 SYSTICK 異常,可專用于實(shí)時(shí)操作系統(tǒng),為系統(tǒng)提供“心跳”節(jié)律,也可當(dāng)成一個(gè)標(biāo)準(zhǔn)的64位遞增計(jì)數(shù)器。 以AHB時(shí)鐘的8分頻為基準(zhǔn)時(shí)鐘源。 當(dāng)計(jì)數(shù)器遞增到設(shè)置比較值時(shí),產(chǎn)生一個(gè)可屏蔽系統(tǒng)中斷。 關(guān)于2個(gè)看門(mén)狗定時(shí)器,在前面教程有過(guò)介紹,在此不做過(guò)多贅述。

關(guān)于CH32V103定時(shí)器具體信息及其相關(guān)功能和實(shí)現(xiàn)等,可參考CH32V103數(shù)據(jù)手冊(cè)和應(yīng)用手冊(cè)。 本章教程主要通過(guò)CH32V103通用定時(shí)器TIM3編寫(xiě)一個(gè)定時(shí)器中斷程序,并下載到開(kāi)發(fā)板進(jìn)行驗(yàn)證,程序編寫(xiě)所需相關(guān)函數(shù)在庫(kù)函數(shù)中進(jìn)行調(diào)用,庫(kù)函數(shù)文件中函數(shù)介紹如下:

1.1、無(wú)效TIM_DeInit(TIM_TypeDef* TIMx)

功 能:將TIMx外圍寄存器初始化為其默認(rèn)重置值。

輸 入:無(wú)

1.2、無(wú)效TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)

功 能:根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx時(shí)基單元外圍設(shè)備。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TimeBaseInitStruct:指向TIM_TimeBaseInitTypeDef結(jié)構(gòu)的指針。

1.3、無(wú)效TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct)

功 能:根據(jù)TIM_OCInitStruct中指定的參數(shù)初始化TIMx Channel1。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_OCInitStruct:指向TIM_OCInitTypeDef結(jié)構(gòu)的指針。

1.4、無(wú)效TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)

功 能:根據(jù)TIM_ICInitStruct中指定的參數(shù)初始化TIM外圍設(shè)備。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_ICInitStruct:指向TIM_ICInitTypeDef結(jié)構(gòu)的指針。

1.5、無(wú)效TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)

功 能:根據(jù)TIM結(jié)構(gòu)中的指定參數(shù)配置TIM外圍設(shè)備,以測(cè)量外部PWM信號(hào)。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_ICInitStruct:指向TIM_ICInitTypeDef結(jié)構(gòu)的指針。

1.6、無(wú)效TIM_BDTRConfig(TIM_TypeDef* TIMx,TIM_BDTRInitTypeDef *TIM_BDTRInitStruct)

功 能:配置:中斷特性、死區(qū)時(shí)間、鎖定級(jí)別、OSSI、OSSR狀態(tài)和AOE(自動(dòng)輸出啟用)。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_BDTRInitStruct:指向TIM_BDTRInitTypeDef結(jié)構(gòu)的指針。

1.7、無(wú)效TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)

功 能:用默認(rèn)值填充每個(gè)TIM_TimeBaseInitStruct成員。

輸 入:TimeBaseInitStruct:指向TIM_TimeBaseInitTypeDef結(jié)構(gòu)的指針。

1.8、無(wú)效TIM_OCStructInit(TIM_OCInitTypeDef*TIM_OCInitStruct)

功 能:用默認(rèn)值填充每個(gè)TIM_OCInitStruct成員。

輸 入:TIM_OCInitStruct:指向TIM_OCInitTypeDef結(jié)構(gòu)的指針。

1.9、無(wú)效TIM_ICStructInit(TIM_ICInitTypeDef*TIM_ICInitStruct)

功 能:用其默認(rèn)值填充每個(gè)TIM_ICInitStruct成員。

輸 入:TIM_ICInitStruct:指向TIM_ICInitTypeDef結(jié)構(gòu)的指針。

1.10、無(wú)效TIM_BDTRStructInit(TIM_BDTRInitTypeDef*TIM_BDTRInitStruct)

功 能:用默認(rèn)值填充每個(gè)TIM_BDTRInitStruct成員。

輸 入:TIM_BDTRInitStruct:指向TIM_BDTRInitTypeDef結(jié)構(gòu)的指針。

1.11、void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState)

功 能:?jiǎn)⒂没蚪弥付ǖ腡IM外圍設(shè)備。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; NewState:啟用或禁用。

1.12、void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)

功 能:?jiǎn)⒂没蚪肨IM外圍設(shè)備主輸出。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; NewState:啟用或禁用。

1.13、void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState)

功 能:?jiǎn)⒂没蚪弥付ǖ腡IM中斷。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_IT:指定要啟用或禁用的TIM中斷源; NewState:啟用或禁用。

1.14、無(wú)效TIM_GenerateEvent(TIM_TypeDef* TIMx,uint16_t TIM_EventSource)

功 能:將TIMx外圍寄存器初始化為其默認(rèn)重置值。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_EventSource:指定事件源。

1.15、無(wú)效TIM_DMAConfig(TIM_TypeDef* TIMx、uint16_t TIM_DMABase、uint16_t TIM_DMABurstLength)

功 能:配置TIMx的DMA接口。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_DMABase:DMA基址; TIM_DMABurstLength:DMA突發(fā)長(zhǎng)度。

1.16、void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalState NewState)

功 能:?jiǎn)⒂没蚪肨IMx的DMA請(qǐng)求。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_DMASource:指定DMA請(qǐng)求源; NewState:啟用或禁用。

1.17、無(wú)效TIM_InternalClockConfig(TIM_TypeDef* TIMx)

功 能:配置TIMx內(nèi)部時(shí)鐘。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備。

1.18、無(wú)效TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx,uint16_t TIM_InputTriggerSource)

功 能:將TIMx內(nèi)部觸發(fā)器配置為外部時(shí)鐘。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_InputTriggerSource:觸發(fā)源。

1.19、無(wú)效TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx、uint16_t TIM_TIxExternalCLKSource、uint16_t TIM_ICPolarity uint16_t ICFilter)

功 能:將TIMx觸發(fā)器配置為外部時(shí)鐘。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_TIxExternalCLKSource: 觸發(fā)器源; ICFilter:指定過(guò)濾器值。 此參數(shù)的值必須介于0x0和0xF之間。

1.20、void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,uint16_t ExtTRGFilter)

功 能:配置外部時(shí)鐘模式1。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_ExtTRGPrescaler:外部觸發(fā)預(yù)分頻器; TIM_ExtTRGPolarity:外部觸發(fā)極性; ExtTRGFilter:外部觸發(fā)器篩選器。

1.21、void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,uint16_t ExtTRGFilter)

功 能:配置TIMx外部觸發(fā)器(ETR)。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_ExtTRGPrescaler:外部觸發(fā)預(yù)分頻器; TIM_ExtTRGPolarity:外部觸發(fā)極性; ExtTRGFilter:外部觸發(fā)器篩選器。

1.22、無(wú)效TIM_PrescalerConfig(TIM_TypeDef* TIMx、uint16_t預(yù)分頻器、uint16_t TIM_PSCReloadMode)

功 能:配置TIMx預(yù)分頻器。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; Prescaler:指定預(yù)分頻器寄存器值; TIM_PSCReloadMode:指定TIM預(yù)分頻器重新加載模式。

1.23、無(wú)效TIM_CounterModeConfig(TIM_TypeDef* TIMx,uint16_t TIM_CounterMode)

功 能:指定要使用的TIMx計(jì)數(shù)器模式。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_CounterMode:指定要使用的計(jì)數(shù)器模式。

1.24、無(wú)效TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource)

功 能:選擇輸入觸發(fā)源。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_InputTriggerSource:輸入觸發(fā)源。

1.25、void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity)

功 能:配置TIMx編碼器接口。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_EncoderMode:指定TIMx編碼器模式;TIM_IC1Polarity:指定IC1極性;TIM_IC2Polarity:指定IC2極性。

1.26、void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction)

功 能:強(qiáng)制TIMx輸出1波形為激活或非激活電平。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_ForcedAction:指定要設(shè)置為輸出波形的強(qiáng)制操作。

1.27、void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState)

功 能:在ARR上啟用或禁用TIMx外設(shè)預(yù)加載寄存器。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;NewState:啟用或禁用。

1.28、void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState)

功 能:選擇TIM外圍換向事件。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;NewState:啟用或禁用。

1.29、void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState)

功 能:選擇TIMx外圍捕獲比較DMA源。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;NewState:啟用或禁用。

1.30、void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState)

功 能:設(shè)置或重置TIM外圍捕獲比較預(yù)加載控制位。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;NewState:啟用或禁用。

1.31、void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)

功 能:?jiǎn)⒂没蚪肅CR1上的TIMx外圍預(yù)加載寄存器。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_OCPreload:TIMx外圍預(yù)加載寄存器的新?tīng)顟B(tài)。

1.32、void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast)

功 能:配置TIMx輸出比較1快速功能。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_OCFast:輸出比較快速啟用位的新?tīng)顟B(tài)。

1.33、void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear)

功 能:清除或保護(hù)外部事件上的OCREF1信號(hào)。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_OCClear:輸出比較清除啟用位的新?tīng)顟B(tài)。

1.34、void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity)

功 能:配置TIMx通道1極性。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_OCPolarity:指定OC1極性。

1.35、void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity)

功 能:配置TIMx通道1極性。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_OCNPolarity:指定OC1N極性。

1.36、無(wú)效TIM_CCxCmd(TIM_TypeDef* TIMx、uint16_t TIM_Channel、uint16_t TIM_CCx)

功 能:?jiǎn)⒂没蚪肨IM捕獲比較通道x。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_Channel:指定TIM通道; TIM_CCx:指定TIM信道CCxE位的新?tīng)顟B(tài)。

1.37、無(wú)效TIM_CCxNCmd(TIM_TypeDef* TIMx、uint16_t TIM_Channel、uint16_t TIM_CCxN)

功 能:?jiǎn)⒂没蚪肨IM捕獲比較通道xN。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_Channel:指定TIM通道; TIM_CCxN:指定TIM信道CCxNE位的新?tīng)顟B(tài)。

1.38、無(wú)效TIM_SelectOCxM(TIM_TypeDef* TIMx、uint16_t TIM_Channel、uint16_t TIM_OCMode)

功 能:選擇TIM輸出比較模式。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; TIM_Channel:指定TIM通道; TIM_OCMODE:指定TIM輸出比較模式。

1.39、無(wú)效TIM_UpdateDisableConfig(TIM_TypeDef* TIMx,函數(shù)狀態(tài)新?tīng)顟B(tài))

功 能:?jiǎn)⒂没蚪肨IMx更新事件。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備; NewState:啟用或禁用。

1.40、無(wú)效TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, uint16_t TIM_UpdateSource)

功 能:配置TIMx更新請(qǐng)求中斷源。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_UpdateSource:指定更新源。

1.41、void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState)

功 能:?jiǎn)⒂没蚪肨IMx的霍爾傳感器接口。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;NewState:啟用或禁用。

1.42、void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, uint16_t TIM_OPMode)

功 能:選擇TIMx的單脈沖模式。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_OPMode:指定要使用的OPM模式。

1.43、void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource)

功 能:選擇TIMx觸發(fā)器輸出模式。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_TRGOSource:指定觸發(fā)器輸出源。

1.44、void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode)

功 能:選擇TIMx從機(jī)模式。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_SlaveMode:指定定時(shí)器從模式。

1.45、void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_MasterSlaveMode)

功 能:設(shè)置或重置TIMx主/從模式。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_MasterSlaveMode:指定定時(shí)器主從模式。

1.46、void TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter)

功 能:設(shè)置TIMx計(jì)數(shù)器寄存器值。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;Counter:指定計(jì)數(shù)器寄存器的新值。

1.47、void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint16_t Autoreload)

功 能:設(shè)置TIMx自動(dòng)重新加載寄存器值。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;Autoreload:指定Autoreload寄存器的新值。

1.48、void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1)

功 能:設(shè)置TIMx捕獲比較1寄存器值。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;Compare1:指定捕獲Compare1寄存器的新值。

1.49、void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC)

功 能:設(shè)置TIMx輸入捕捉1預(yù)分頻器。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_ICPSC:指定輸入Capture1預(yù)分頻器的新值。

1.50、void TIM_SetClockDivision(TIM_TypeDef* TIMx, uint16_t TIM_CKD)

功 能:設(shè)置TIMx時(shí)鐘刻度值。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_CKD:指定時(shí)鐘分頻值。

1.51、uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx)

功 能:獲取TIMx輸入捕獲1的值。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備。

1.52、uint16_t TIM_GetCounter(TIM_TypeDef* TIMx)

功 能:獲取TIMx計(jì)數(shù)器值。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備。

1.53、uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx)

功 能:獲取TIMx預(yù)分頻器值。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備。

1.54、FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)

功 能:檢查是否設(shè)置了指定的TIM標(biāo)志。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_FLAG:指定要檢查的標(biāo)志。

1.55、void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)

功 能:清除TIMx的掛起標(biāo)志。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_FLAG:指定要清除的標(biāo)志位。

1.56、ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT)

功 能:檢查T(mén)IM中斷是否發(fā)生。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_IT:指定要檢查的TIM中斷源。

1.57、void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)

功 能:清除TIMx的中斷掛起的位。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_IT:指定要清除的掛起位。

1.58、static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint16_t TIM_ICSelection,uint16_t TIM_ICFilter)

功 能:將TI1配置為輸入。

輸 入:TIMx:其中x可以是1到4來(lái)選擇TIM外圍設(shè)備;TIM_ICPolarity:輸入極性;TIM_ICSelection:指定要使用的輸入;TIM_ICFilter:指定輸入捕獲篩選器。

以上函數(shù)均為庫(kù)函數(shù)內(nèi)部函數(shù),在進(jìn)行使用時(shí)只需在程序中進(jìn)行調(diào)用即可。

2、硬件設(shè)計(jì)

本章教程通過(guò)定時(shí)器中斷控制LED燈閃爍,其中,定時(shí)器為CH32V103內(nèi)部資源,無(wú)需進(jìn)行硬件設(shè)計(jì),只需進(jìn)行LED連接即可,LED與GPIO引腳連接方式如下:

LED1與PA0連接;

LED2與PA1連接。

3、軟件設(shè)計(jì)

本章教程主要通過(guò)定時(shí)器中斷控制LED燈閃爍,其中,led.c文件與led.h文件前面GPIO教程中已講解,在此不再介紹,本章主要介紹time.h文件、time.c文件以及main.c文件,具體程序如下:

time.h文件

poYBAGPYs5mADYo_AAAep4GzhG8724.png

time.h文件主要是定時(shí)器初始化配置函數(shù)的聲明。

time.c文件

poYBAGPYs5mAEOeuAAGDptae-i0236.png

4、下載驗(yàn)證

將編譯好的程序下載到開(kāi)發(fā)板并復(fù)位,可以看到開(kāi)發(fā)板兩個(gè)LED燈閃爍,其中,LED1閃爍較快,LED2閃爍較慢。同時(shí),串口調(diào)試助手打印顯示:Enter interrupt,表示程序進(jìn)入中斷,大約500ms打印一次。串口調(diào)試助手打印顯示如下:

pYYBAGPYs5mADpdzAAEmRGARORo843.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23840

    瀏覽量

    673955
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17978

    瀏覽量

    366675
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3298

    瀏覽量

    118882
  • RISC-V
    +關(guān)注

    關(guān)注

    46

    文章

    2563

    瀏覽量

    48794
  • CH32V103
    +關(guān)注

    關(guān)注

    1

    文章

    13

    瀏覽量

    1238
  • ch32
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    901
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于CH32V103系列MCU的ADC采樣設(shè)計(jì)

    CH32V103系列是以青稞V3A處理為核心的32位通用RISC-V MCU,該處理是基于RISC-
    的頭像 發(fā)表于 01-31 14:21 ?4866次閱讀
    基于<b class='flag-5'>CH32V103</b>系列MCU的ADC采樣設(shè)計(jì)

    如何使用STM32F103通用定時(shí)器中斷來(lái)實(shí)現(xiàn)LED閃爍

    STM32F103系列的單片機(jī)一共有幾個(gè)定時(shí)器呢?如何使用STM32F103通用定時(shí)器中斷來(lái)實(shí)現(xiàn)LED
    發(fā)表于 11-24 07:44

    請(qǐng)問(wèn)stm32定時(shí)器中斷如何控制led閃爍?

    請(qǐng)問(wèn)stm32定時(shí)器中斷如何控制led閃爍
    發(fā)表于 11-29 06:51

    定時(shí)器中斷如何控制led閃爍?

    定時(shí)器中斷如何控制led閃爍?
    發(fā)表于 02-15 07:25

    CH32V103基礎(chǔ)教程7-定時(shí)器中斷

    本章教程通過(guò)CH32V103開(kāi)發(fā)板板載兩個(gè)LED顯示程序運(yùn)行狀態(tài),具體情況如下:· 串口調(diào)式助手大約每隔500ms打印一次”Enter interrupt“;· 開(kāi)發(fā)板上
    發(fā)表于 04-14 16:12

    CH32V103基礎(chǔ)教程8-PWM輸出

    進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。CH32V103的高級(jí)定時(shí)器TIM1和通用定時(shí)器TIM2/
    發(fā)表于 04-14 16:16

    基于STM32單片機(jī)的TIM定時(shí)器中斷控制不同閃爍

    STM32單片機(jī)TIM定時(shí)器中斷控制不同閃爍,讓兩個(gè)以不同頻率
    發(fā)表于 04-08 16:19 ?23次下載

    【MCU】基于STM32CubeMX定時(shí)器中斷實(shí)現(xiàn)LED閃爍

    基于STM32CubeMX定時(shí)器中斷實(shí)現(xiàn) LED 閃爍本實(shí)驗(yàn)基于STM32CubeMX實(shí)現(xiàn)對(duì)STM32開(kāi)發(fā)板的配置,通過(guò)
    發(fā)表于 10-29 11:06 ?20次下載
    【MCU】基于STM32CubeMX<b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>實(shí)現(xiàn)<b class='flag-5'>LED</b><b class='flag-5'>閃爍</b>

    RISC-V MCU應(yīng)用開(kāi)發(fā)教程之CH32V103

    講解,涉及的相關(guān)寄存等部分可參考沁恒官方提供的資料。CH32V103數(shù)據(jù)手冊(cè):CH32V103DS0.PDFCH32V103應(yīng)用手冊(cè):CH32xRM.PDFCH32V103官方例程:
    發(fā)表于 11-18 16:21 ?18次下載
    RISC-<b class='flag-5'>V</b> MCU應(yīng)用開(kāi)發(fā)教程之<b class='flag-5'>CH32V103</b>

    STM32 CubeMX學(xué)習(xí):3. 定時(shí)器閃爍LED

    STM32 CubeMX學(xué)習(xí):3. 定時(shí)器閃爍LED 系列文章目錄前期的準(zhǔn)備點(diǎn)亮 LED閃爍 LED
    發(fā)表于 11-25 10:21 ?13次下載
    STM32 CubeMX學(xué)習(xí):3. <b class='flag-5'>定時(shí)器</b><b class='flag-5'>閃爍</b><b class='flag-5'>LED</b>

    沁恒微血氧儀方案CH32V103控制器

    CH32V103控制器32位RISC-V指令集內(nèi)核通用微控制器32位RISC-V指令集內(nèi)核通用微控制器
    的頭像 發(fā)表于 12-27 11:54 ?2033次閱讀
    沁恒微血氧儀方案<b class='flag-5'>CH32V103</b>微<b class='flag-5'>控制器</b>

    基于CH32V103系列MCU點(diǎn)亮LED

    CH32V103系列是以青稞V3A處理為核心的32位通用MCU,該處理是基于RISC-V開(kāi)源指令集設(shè)計(jì)。 片上集成了時(shí)鐘安全機(jī)制、多級(jí)電
    的頭像 發(fā)表于 01-31 12:01 ?2564次閱讀
    基于<b class='flag-5'>CH32V103</b>系列MCU點(diǎn)亮<b class='flag-5'>LED</b>

    基于CH32V103系列MCU的觸摸按鍵檢測(cè)

    CH32V103系列是以青稞V3A處理為核心的32位通用MCU,該處理是基于RISC-V開(kāi)源指令集設(shè)計(jì)。片上集成了時(shí)鐘安全機(jī)制、多級(jí)電源
    的頭像 發(fā)表于 01-31 14:53 ?4944次閱讀
    基于<b class='flag-5'>CH32V103</b>系列MCU的觸摸按鍵檢測(cè)

    ch32v103應(yīng)用教程 ch32v103c8t6兼容 ch32v103c8t6燒錄

    的應(yīng)用教程以及燒錄、編程的介紹。 一、CH32V103應(yīng)用教程 1.硬件連接 首先,我們需要準(zhǔn)備好CH32V103的開(kāi)發(fā)板和一些外圍設(shè)備,如LE
    的頭像 發(fā)表于 08-22 15:19 ?2920次閱讀

    ch32v103與stm32f103的區(qū)別

    ch32v103與stm32f103的區(qū)別? Ch32v103與STM32f103是兩種不同的芯片,雖然它們都是基于ARM Cortex-M3內(nèi)核的32位微
    的頭像 發(fā)表于 08-22 15:49 ?3291次閱讀