本文來(lái)源電子發(fā)燒友社區(qū),作者:川楠, 帖子地址:https://bbs.elecfans.com/jishu_2241443_1_1.html
前言
大家好。
首先,感謝南京中科微提供的CSM32RV20開(kāi)發(fā)板,同時(shí)也感謝發(fā)燒友提供的試用平臺(tái)。
這次測(cè)試的是定時(shí)器,測(cè)試目標(biāo):使用定時(shí)器,周期性的控制LED燈。
代碼編程
還是一樣的,按照官方的教程,建立DEMO程序,查看main.c文件。
基本上定時(shí)器的相關(guān)代碼就在這里的,但是定時(shí)器的中斷函數(shù)呢?函數(shù)入口呢?
這里可以直接查看啟動(dòng)文件。
按照這個(gè)函數(shù)名稱,查找:ctrl+f(基本上絕大多說(shuō)的查找命令都是這個(gè)快捷鍵組合)
這樣你就能找到中斷函數(shù):
在中斷函數(shù)里,交替改變的是PA12引腳的電平變化。
到了這里,我基本上有了編程的思路的,這還在沒(méi)有看數(shù)據(jù)手冊(cè)的情況下:
具體代碼如下:
復(fù)制代碼
程序編譯下載:
結(jié)果燈好像沒(méi)有什么變化?就一個(gè)紅燈常亮?
不要著急,使用示波器,或者邏輯分析儀看一下,PA12引腳的電平,你就明白了。
頻率都達(dá)到了500HZ了,肉眼能看到,才是怪事。
到了這里,實(shí)驗(yàn)?zāi)康氖沁_(dá)到了。但是通常,我們是需要改變定時(shí)的周期/頻率的,所以,這里就需要仔細(xì)的研究下定時(shí)器初始化了。
PSC-預(yù)分頻,值為31;ARR-自動(dòng)重裝寄存器,值為1000。
結(jié)合系統(tǒng)時(shí)鐘是32MHZ,所以定時(shí)器的頻率分頻應(yīng)該是31+1,所以計(jì)時(shí)時(shí)鐘為1MHZ。
在這個(gè)頻率下,計(jì)數(shù)1000個(gè),也就是1KHZ,1MS,所以,定時(shí)器的中斷周期是1MS,LED的頻率就是500HZ了。
如果是這樣的話,ARR的值應(yīng)該是1000-1=999才是更精確的1MS定時(shí)中斷啊。不過(guò)都是小問(wèn)題。
調(diào)整驗(yàn)證一下:
將定時(shí)器中斷周期改為500MS,使得LED1S閃爍一次。更改Timer1_UpCounting_Mode_Init();
可以看到預(yù)分頻的值范圍是0-65535;
定時(shí)器為16位定時(shí)器,計(jì)數(shù)范圍也是0-65535;
所以修改定時(shí)器初始化值為:
在抓PA12波形:
試用感受
CSM32整體用起來(lái),感覺(jué)還是不錯(cuò)基本上不用看手冊(cè)就可以了,把單個(gè)功能實(shí)現(xiàn)。但是,如果在仔細(xì)的看官方的源代碼,其實(shí)還是能找到一些小問(wèn)題。
就比如,定時(shí)器ARR應(yīng)該要減1才對(duì),
雖然,這些小問(wèn)題,不會(huì)影響到代碼功能,但是還是少了一份嚴(yán)謹(jǐn)。
總體來(lái)說(shuō),我還是要為我們國(guó)產(chǎn)的單片機(jī)點(diǎn)個(gè)贊,希望再接再厲!
前言
大家好。
首先,感謝南京中科微提供的CSM32RV20開(kāi)發(fā)板,同時(shí)也感謝發(fā)燒友提供的試用平臺(tái)。
這次測(cè)試的是定時(shí)器,測(cè)試目標(biāo):使用定時(shí)器,周期性的控制LED燈。
代碼編程
還是一樣的,按照官方的教程,建立DEMO程序,查看main.c文件。

基本上定時(shí)器的相關(guān)代碼就在這里的,但是定時(shí)器的中斷函數(shù)呢?函數(shù)入口呢?
這里可以直接查看啟動(dòng)文件。

按照這個(gè)函數(shù)名稱,查找:ctrl+f(基本上絕大多說(shuō)的查找命令都是這個(gè)快捷鍵組合)

這樣你就能找到中斷函數(shù):

在中斷函數(shù)里,交替改變的是PA12引腳的電平變化。
到了這里,我基本上有了編程的思路的,這還在沒(méi)有看數(shù)據(jù)手冊(cè)的情況下:
具體代碼如下:
- int main(void)
- {
- ///----System Init ---------------------------------------------------------------------------------------------
- CLIC_Init();//系統(tǒng)中斷配置
- System_Clock_Init();//系統(tǒng)時(shí)鐘初始化
- GPIO_MODE_Init(GPIOA,PIN12,GPIO_MODE_OUTPUT); //GPIO 模式
- //外設(shè)配置
- timer1_UpCounting_Mode_Init();//向上計(jì)數(shù)
- Interrupt_Enable(TIMER1_updata_int_ID);//CLIC使能中斷
- //使能系統(tǒng)總中斷
- SYS_Interrupt_Enable();//CLIC開(kāi)總中斷
- while(1)
- {
- }
- return 0;
- }
程序編譯下載:
結(jié)果燈好像沒(méi)有什么變化?就一個(gè)紅燈常亮?

不要著急,使用示波器,或者邏輯分析儀看一下,PA12引腳的電平,你就明白了。

頻率都達(dá)到了500HZ了,肉眼能看到,才是怪事。
到了這里,實(shí)驗(yàn)?zāi)康氖沁_(dá)到了。但是通常,我們是需要改變定時(shí)的周期/頻率的,所以,這里就需要仔細(xì)的研究下定時(shí)器初始化了。

PSC-預(yù)分頻,值為31;ARR-自動(dòng)重裝寄存器,值為1000。
結(jié)合系統(tǒng)時(shí)鐘是32MHZ,所以定時(shí)器的頻率分頻應(yīng)該是31+1,所以計(jì)時(shí)時(shí)鐘為1MHZ。
在這個(gè)頻率下,計(jì)數(shù)1000個(gè),也就是1KHZ,1MS,所以,定時(shí)器的中斷周期是1MS,LED的頻率就是500HZ了。
如果是這樣的話,ARR的值應(yīng)該是1000-1=999才是更精確的1MS定時(shí)中斷啊。不過(guò)都是小問(wèn)題。
調(diào)整驗(yàn)證一下:
將定時(shí)器中斷周期改為500MS,使得LED1S閃爍一次。更改Timer1_UpCounting_Mode_Init();

可以看到預(yù)分頻的值范圍是0-65535;
定時(shí)器為16位定時(shí)器,計(jì)數(shù)范圍也是0-65535;
所以修改定時(shí)器初始化值為:

在抓PA12波形:

試用感受
CSM32整體用起來(lái),感覺(jué)還是不錯(cuò)基本上不用看手冊(cè)就可以了,把單個(gè)功能實(shí)現(xiàn)。但是,如果在仔細(xì)的看官方的源代碼,其實(shí)還是能找到一些小問(wèn)題。
就比如,定時(shí)器ARR應(yīng)該要減1才對(duì),

雖然,這些小問(wèn)題,不會(huì)影響到代碼功能,但是還是少了一份嚴(yán)謹(jǐn)。
總體來(lái)說(shuō),我還是要為我們國(guó)產(chǎn)的單片機(jī)點(diǎn)個(gè)贊,希望再接再厲!
聲明:本文內(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)投訴
-
南京中科微
+關(guān)注
關(guān)注
0文章
60瀏覽量
1034 -
CSM32RV20
+關(guān)注
關(guān)注
0文章
40瀏覽量
316
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
【評(píng)測(cè)試用】合眾HZ-T536開(kāi)發(fā)板免費(fèi)試用體驗(yàn)
【評(píng)測(cè)試用】合眾HZ-T536開(kāi)發(fā)板免費(fèi)試用體驗(yàn)

【新品體驗(yàn)】正點(diǎn)原子STM32MP257開(kāi)發(fā)板免費(fèi)試用
試用產(chǎn)品概述ATK-DLMP257B開(kāi)發(fā)板是正點(diǎn)原子基于STM32MP257DAK3處理器研發(fā)的一款高性能嵌入式開(kāi)發(fā)平臺(tái),適用于嵌入式系統(tǒng)開(kāi)發(fā)。該開(kāi)

基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案
在RV1126開(kāi)發(fā)板上實(shí)現(xiàn)人臉檢測(cè):在圖像中找出人臉,以及每張人臉的landmarks位置。
方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,
算法代碼負(fù)責(zé)人臉檢測(cè)功能。

基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案
在RV1126開(kāi)發(fā)板上實(shí)現(xiàn)人臉檢測(cè):在圖像中找出人臉,以及每張人臉的landmarks位置。
方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,
算法代碼負(fù)責(zé)人臉檢測(cè)功能。

基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案
在RV1126開(kāi)發(fā)板上實(shí)現(xiàn)人臉檢測(cè):在圖像中找出人臉,以及每張人臉的landmarks位置。
方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,
算法代碼負(fù)責(zé)人臉檢測(cè)功能。

免費(fèi)丨米爾 STM32MP257開(kāi)發(fā)板有獎(jiǎng)試用
米爾與ST合作發(fā)布的新品基于STM32MP257應(yīng)用處理器的MYD-LD25X開(kāi)發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了2塊價(jià)值488元的MYD-LD25X開(kāi)發(fā)板發(fā)起

有獎(jiǎng)丨米爾 瑞芯微YR3562開(kāi)發(fā)板免費(fèi)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3562應(yīng)用處理器的MYD-YR3562開(kāi)發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了3塊價(jià)值599元的MYD-YR3562

有獎(jiǎng)試用!!RA-Eco-RA4M2-100PIN-V1.0開(kāi)發(fā)板試用活動(dòng)報(bào)名
RA-Eco-RA4M2-100PIN-V1.0開(kāi)發(fā)板試用活動(dòng)

有獎(jiǎng)丨米爾 全志T536開(kāi)發(fā)板免費(fèi)試用
米爾與全志合作發(fā)布的新品基于全志T536應(yīng)用處理器的MYD-LT536-GK開(kāi)發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了3塊價(jià)值750元的MYD-LT536-GK開(kāi)發(fā)板發(fā)起試用活動(dòng)您不僅可以免

追加名額丨米爾瑞芯微RK3576開(kāi)發(fā)板有獎(jiǎng)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開(kāi)發(fā)板免費(fèi)試用活動(dòng)加碼啦~~米爾追加了2塊價(jià)值849元的MY

常用在工業(yè)控制系統(tǒng)上的MCU芯片資料:CSM32RV20
CSM32RV20是一款基于RISC-V核的低功耗MCU芯片。 內(nèi)置RISC-V RV32IMAC內(nèi)核(2.6CoreMark/MHz); 蕞高32MHz工作頻率; 內(nèi)置4kB的SRAM; 內(nèi)置8B

有獎(jiǎng)丨米爾 瑞芯微RK3576開(kāi)發(fā)板免費(fèi)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開(kāi)發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了7塊價(jià)值849元的MYD-LR3576

有獎(jiǎng)試用!!RA-Eco-RA4E2-64PIN-V1.0開(kāi)發(fā)板試用活動(dòng)開(kāi)始報(bào)名
有獎(jiǎng)試用!!RA-Eco-RA4E2-64PIN-V1.0開(kāi)發(fā)板試用活動(dòng)開(kāi)始報(bào)名

點(diǎn)擊參與米爾NXP i.MX 93開(kāi)發(fā)板有獎(jiǎng)試用
米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開(kāi)發(fā)板免費(fèi)試用活動(dòng)來(lái)啦~~米爾提供了3塊價(jià)值678元的MYD-LMX9X開(kāi)發(fā)板發(fā)起試用活動(dòng)您不僅可以免費(fèi)體

評(píng)論