STM32F103學(xué)習(xí)之編寫第一個STM32程序
因為第一次接觸STM的單片機(jī),各種寄存器和API都不熟悉,于是結(jié)合STM的庫函數(shù)和編程手冊對照理解。建立好工程之后,編寫main函數(shù)。
1.不管哪種單片機(jī),上電以后第一重要的事就是設(shè)置時鐘和初始化引腳。單看STM32F的時鐘:
能作為STM32F103的系統(tǒng)時鐘的有三種,外部時鐘,內(nèi)部時鐘,PLL時鐘。
跟蹤到SystemInit里面,一開始CPU工作于內(nèi)部時鐘,代碼初始化一些時鐘寄存器的值。然后調(diào)用SetSysSClock()設(shè)置新的時鐘源。
可以看到用戶只需要定義相應(yīng)的宏就可以設(shè)定時鐘。宏定義在本文件的最上面。我使用的芯片是STM32F103C6T8,文件中定義了
感覺STM的庫寫的不好的是如果72MHz時鐘不正常,時鐘初始化函數(shù)沒用任何返回信息,只能在STM提供的函數(shù)中增加:
有失程序的靈活性和獨立性。
而初始化代碼中的各種寄存器定義的賦值參考STM編程手冊,就明白了。主要的寄存器有這些:
2.設(shè)置GPIO: 點亮一個Led:PA3---電阻--Led--GND
Ctr+F5開始Debug,運(yùn)行程序,察看效果(下載程序之后程序沒有直接執(zhí)行,不知道我設(shè)置的問題還是本身就這樣子)。
后來發(fā)現(xiàn)可以在這里設(shè)置:
3.使用printf函數(shù)。需要配置選項,不然的話,只要加入了printf,程序不能正常運(yùn)行。
編輯:admin 最后修改時間:2018-05-23