1.部分外設及GPIO口對應的時鐘改變
因此各GPIO的時鐘使能函數(shù)和時鐘名稱均發(fā)生改變。


2.GPIO口的模式發(fā)生改變
F1的GPIO口只有8種模式;而F4在輸出時亦可設置上拉和下拉,因此F4可以有12種模式。并且F4的GPIO口的輸入/輸出/復用/模擬、推挽/開漏、上拉/下拉 都需要單獨設置。除此之外,因為F4用的是AHB時鐘,其最大輸出速率可達到100MHz以上。




3.GPIO口對應的寄存器的名稱發(fā)生改變
直接編譯的話就會出現(xiàn)這樣的錯誤errorstruct""has no field "CRL",CRL是F1的端口配置低位寄存器,而因為F4中對應的寄存器已經(jīng)不叫這個名字了(叫MODER),因此會報錯。
//舉個栗子//F1#define AMG_SDA_IN() {GPIOB->CRL&=0x0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}//PB7輸入模式#define AMG_SDA_OUT() {GPIOB->CRL&=0x0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}//PB7輸入模式//F4#define AMG_SDA_IN() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=0<<7*2;} //PB7輸入模式#define?AMG_SDA_OUT()?{GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=1<<7*2;}//PB7輸入模式
4.F4配置有浮點數(shù)得硬件運算單元
F1是沒有浮點數(shù)得硬件運算單元的,其浮點數(shù)運算是采用軟件模擬,因此運算速度會很慢。(1)警告:warning:#1035-D:single-precision operand implicitly converted to double-precision解決方法:1)如果是浮點數(shù)值進行運算的話,則在浮點數(shù)值后加上f;2)若是變量運算,則將其計算強制轉(zhuǎn)換
floata,b,c;c=0.1f*8.9f;//浮點數(shù)值后加fa=(float)(a*b);//將其運算結(jié)果轉(zhuǎn)換
(2)如何開啟F4的浮點數(shù)硬件計算單元
1)打開文件system_stm32f4xx.c——>函數(shù)void SystemInit(void)中加入如下代碼:
#if(__FPU_PRESENT==1)&&(__FPU_USED==1) SCB->CPACR|=((3UL<10*2)|(3UL?<11*2));?? ?#endif
2)在編譯器中,Options for Target’XXX’—>C/C+±—>Define中加入以下語句:
__FPU_PRESENT=1,__FPU_USED =1
-
時鐘
+關注
關注
11文章
1999瀏覽量
135225 -
GPIO
+關注
關注
16文章
1333瀏覽量
56431
發(fā)布評論請先 登錄
基于極海APM32F4的Azure RTOS ThreadX移植過程分享
正點原子F407開發(fā)板BSP RTstudio配置LVGL demo界面不能觸摸怎么解決?
CPPDEFINES = [\'STM32F103xB\']如何選擇?
GD32F103RCT6移植qboot,燒錄之后系統(tǒng)卡死怎么解決?
MH32F103A系列單片機的功能特性
移植CANfestival,發(fā)現(xiàn)can無法接收數(shù)據(jù),為什么?
STM32F407VGT6的完美國產(chǎn)替代——中科芯CKS32F407VGT6在智能電力網(wǎng)關的應用
在STM32F103c8上做DLQR最優(yōu)控制算法的C編程資料
STM32F407驕陽電機版用DMA雙緩存接收串口數(shù)據(jù)時,上電第一次接收區(qū)是memory1而不是memory0?為什么?
極海APM32F407 uc/os3學習筆記之任務管理介紹
F103程序移植到F407的經(jīng)驗小結(jié)
評論