1.部分外设及GPIO口对应的时钟改变
因此各GPIO的时钟使能函数和时钟名称均发生改变。
2.GPIO口的模式发生改变
F1的GPIO口只有8种模式;而F4在输出时亦可设置上拉和下拉,因此F4可以有12种模式。并且F4的GPIO口的输入/输出/复用/模拟、推挽/开漏、上拉/下拉 都需要单独设置。除此之外,因为F4用的是AHB时钟,其最大输出速率可达到100MHz以上。
3.GPIO口对应的寄存器的名称发生改变
直接编译的话就会出现这样的错误errorstruct""has no field "CRL",CRL是F1的端口配置低位寄存器,而因为F4中对应的寄存器已经不叫这个名字了(叫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配置有浮点数得硬件运算单元
F1是没有浮点数得硬件运算单元的,其浮点数运算是采用软件模拟,因此运算速度会很慢。(1)警告:warning:#1035-D:single-precision operand implicitly converted to double-precision解决方法:1)如果是浮点数值进行运算的话,则在浮点数值后加上f;2)若是变量运算,则将其计算强制转换
floata,b,c;c=0.1f*8.9f;//浮点数值后加fa=(float)(a*b);//将其运算结果转换
(2)如何开启F4的浮点数硬件计算单元
1)打开文件system_stm32f4xx.c——>函数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文章
1749浏览量
131897 -
GPIO
+关注
关注
16文章
1217浏览量
52489
发布评论请先 登录
相关推荐
【GD32 MCU 移植教程】9、从 STM32F10x 系列移植到 GD32F30x 系列
![【GD32 MCU <b class='flag-5'>移植</b>教程】9、从 STM32<b class='flag-5'>F</b>10x 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32<b class='flag-5'>F</b>30x 系列](https://file1.elecfans.com/web2/M00/04/DF/wKgZombVHYWASdt6AAA4EF8E1O4442.png)
【GD32 MCU 移植教程】8、从 STM32F4xx 系列移植到 GD32F4xx 系
![【GD32 MCU <b class='flag-5'>移植</b>教程】8、从 STM32<b class='flag-5'>F</b>4xx 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32<b class='flag-5'>F</b>4xx 系](https://file1.elecfans.com/web2/M00/06/61/wKgaombaXZ6AB4PtAABI6uZ03C4508.png)
【GD32 MCU 移植教程】7、从 GD32F10x 移植到 GD32E103
![【GD32 MCU <b class='flag-5'>移植</b>教程】7、从 GD32<b class='flag-5'>F</b>10x <b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32E<b class='flag-5'>103</b>](https://file1.elecfans.com/web2/M00/06/3A/wKgaombZC9iADDHsAAAzqJTGQus009.png)
【GD32 MCU 移植教程】2、从 GD32F303 移植到 GD32F503
![【GD32 MCU <b class='flag-5'>移植</b>教程】2、从 GD32<b class='flag-5'>F</b>303 <b class='flag-5'>移植</b><b class='flag-5'>到</b> GD32<b class='flag-5'>F</b>503](https://file1.elecfans.com/web2/M00/05/B4/wKgaombSc4eAC86hAAB_e6oIxhc582.png)
评论