建立乙個STM32F0xx工程模板

2021-10-05 08:07:15 字數 1592 閱讀 6905

之前一直是使用stm32f103系列,直接使用正點原子的教程,並沒有關注過建立工程的問題,現在由於某些原因,需要使用stm32f072c8t6,引腳功能大致相同,但沒有現成能用的工程,所以需要手動建立乙個工程。

參考部落格1:

參考部落格2:

推薦參考部落格2進行建立。部落格1中的第17點,需要再新增乙個」…\libraries\cmsis\include「,否則編譯會出現找不到」core_cm0.h「檔案的提示。

資料手冊:

因為專案需要用到串列埠2,3。我在除錯的時候串列埠1,2都能正常使用,但是串列埠3不知道為什麼初始化失敗。之後檢視資料手冊發現,串列埠1,2用的是gpio_af_1,串列埠3用的是gpio_af_4,資料手冊41-43頁。。就是因為這個我調了兩天。。。。

下面貼出我的串列埠1,2,3的初始化,我用的是stm32f072c8t6。

void

usart1_init

(u32 bound)

void

usart2_init

(u32 bound)

void

usart3_init

(u32 bound)

還有時鐘配置。記錄一下。。

void

rcc_configuration()

while

((hsestatus ==0)

&&(startupcounter != hse_startup_timeout));

if((rcc->cr & rcc_cr_hserdy)

!= reset)

else

if(hsestatus ==

(uint32_t)

0x01

)/* select pll as system clock source */

rcc->cfgr &

=(uint32_t)

((uint32_t)

~(rcc_cfgr_sw));

rcc->cfgr |

=(uint32_t)rcc_cfgr_sw_pll;

/* wait till pll is used as system clock source */

while

((rcc->cfgr &

(uint32_t)rcc_cfgr_sws)

!=(uint32_t)rcc_cfgr_sws_pll)

}else

/* select pll as system clock source */

rcc->cfgr &

=(uint32_t)

((uint32_t)

~(rcc_cfgr_sw));

rcc->cfgr |

=(uint32_t)rcc_cfgr_sw_pll;

/* wait till pll is used as system clock source */

while

((rcc->cfgr &

(uint32_t)rcc_cfgr_sws)

!=(uint32_t)rcc_cfgr_sws_pll)

}}

建立第乙個stm32工程感觸

哦,三天,跟同學聚會時在想這個問題,出去k歌還是這個問題,三天啊,自己都差點吐了!編譯0 error,0 warning,但以除錯就有問題了。開始出現的問題 error65 no write permiso 在網上收羅半天,無果,拿著自己建的工程與例程反覆對比,還是毫無頭緒.而且自己建的工程完全用的...

在MDK上建立乙個C 的STM32開發工程

最近,我驚訝地發現居然可以用c 進行嵌入式程式開發,甚至是裸系統程式。之前,做微控制器開發 stm32上程式開發,想到的都是c語言 組合語言,根 本就沒有考慮過還可以用c 語言做開發。近日,在學習公司的專案之後,發現c 有其獨道之處。開發起來比c語言更方便架構搭建與程式管理。總而言之,c與c 各有各...

乙個跟STM32F0中斷優先順序有關的話題

經過跟他深入溝通,了解到stm32f031跟外界有uart資料通訊並開啟了rxne接收中斷,還有對外的ad取樣動作,通過定時器定時觸發ad轉換,並開啟了adc1的轉換完成中斷。ad觸發間隔為2秒。再就是些其它對外的gpio操作的東西。他陳述當波特率低於9600,甚至更低時就很難遇到丟包的現象,只要當...