STM32F1和STM32F4 区别

STM32F1和STM32F4 区别,第1张

u F1采用Crotex M3内核,F4采用Crotex M4内核。u F1最高主频 72MHz, F4最高主频168MHz。u F4具有单精度浮点运算单元,F1没有浮点运算单元。u F4的具备增强的DSP指令集。F4的执行16位DSP指令的时间只有F1的30%~70%。F4执行32位DSP指令 的时间只有F1的25%~60%。u F1内部SRAM最大64K字节, F4内部SRAM有192K字节(112K+64K+16K)。u F4有备份域SRAM(通过Vbat供电保持数据),F1没有备份域SRAM。u F4从内部SRAM和外部FSMC存储器执行程序的速度比F1快很多。F1的指令总线I-Bus只接到Flash上,从SRAM和FSMC取指令只能通过S-Bus,速度较慢。F4的I-Bus不但连接到Flash上,而且还连接到SRAM和FSMC上,从而加快从SRAM或FSMC取指令的速度。u F1最大封装为144脚,可提供112个GPIO;F4最大封装有176脚,可提供140个GPIO。u F1的GPIO的内部上下拉电阻配置仅仅针对输入模式有用,输出时无效。而F4的GPIO在设置为输出模式时,上下拉电阻的配置依然有效。即F4可以配置为开漏输出,内部上拉电阻使能,而F1不行。u F4的GPIO最高翻转速度为84MHz,F1最大翻转速度只有18MHz。u F1最多可提供5个UART串口,F4最多可以提供6个UART串口。u F1可提供2个I2C接口,F4可以提供3个I2C接口。u F1和F4都具有3个12位的独立ADC,F1可提供21个输入通道,F4可以提供24个输入通道。F1的ADC最大采样频率为1Msps,2路交替采样可到2Msps(F1不支持3路交替采样)。F4的ADC最大采样频率为24Msps,3路交替采样可到72Msps。u F1只有12个DMA通道,F4有16个DMA通道。F4的每个DMA通道有432位FIFO,F1没有FIFO。u F1的SPI时钟最高速度为 18MHz, F4可以到375MHz。u F1没有独立的32位定时器(32位需要级联实现),F4的TIM2和TIM5具有32位上下计数功能。u F1和F4都有2个I2S接口,但是F1的I2S只支持半双工(同一时刻要么放音,要么录音),而F4的I2S支持全双工,放音和录音可以同时进行

stm32spi初始化卡死的解决方法如下:

1、keil的debug模式在线调试运行,即可知道程序卡死位置;

2、在中断程序中点灯或者打印,判断中断程序是否能够正常运行;

3、在程序主逻辑中打印或者点灯,多次编译烧录,判断卡死位置。

在STM32中,可以使用多任务 *** 作系统(RTOS)来运行多个程序。常见的RTOS包括FreeRTOS、uC/OS和RTX等。这些RTOS提供了多任务调度、同步和通信机制,使得多个程序可以并行运行,从而提高系统的效率和可靠性。

使用RTOS需要在STM32上添加RTOS的库文件,并进行配置。然后在代码中创建多个任务并定义它们的优先级,RTOS会自动进行任务调度,让它们并行运行。下面是一个简单的示例代码:

```c

#include "FreeRTOSh"

#include "taskh"

void task1(void pvParameters) {

while (1) {

// task1的代码

}

}

void task2(void pvParameters) {

while (1) {

// task2的代码

}

}

int main(void) {

// 初始化RTOS

xTaskCreate(task1, "Task 1", configMINIMAL_STACK_SIZE, NULL, 1, NULL);

xTaskCreate(task2, "Task 2", configMINIMAL_STACK_SIZE, NULL, 2, NULL);

vTaskStartScheduler();

while (1) {

// 主循环的代码

}

}

```

在上面的示例中,创建了两个任务task1和task2,并分别定义了它们的优先级为1和2。然后调用了vTaskStartScheduler()函数启动RTOS的调度器,让它自动进行任务调度。最后在主循环中添加其他的代码。

需要注意的是,在RTOS中,所有任务都必须是无限循环的,否则任务执行完后会自动被删除。因此,任务的代码中应该始终包含一个无限循环语句。

不行的,stm32是从flash取指令执行,你在中间加一个spi接口,一方面无法保证数据的稳定性,最重要的是spi极大的限制了取指令的速度,所以不行。人家也不会这么设计的。外置nand flash或外置ram有可能行,具体看技术手册。

其实你可以自己划分一部分flash出来,使用IAP功能就能达到你上面想要的运行效果。

以上就是关于STM32F1和STM32F4 区别全部的内容,包括:STM32F1和STM32F4 区别、stm32spi初始化卡死、stm32程序运行多个程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9792379.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存