本帖最后由 月月鸟刘 于 2018-7-10 15:49 编辑 各位好: 目前使用的芯片是STM32F405VGT6 LQFP100封装的,现在可以看到100封装第94引脚为BOOT0引脚,而PB2口描述如下所示: PIN:37 功能:PB2/BOOT1 (PB2) I/O FT - EVENTOUT - 而在数据手册里面的启动方式也是BOOT0和BOOT1配合使用的 现在我用PB2做控制口,BOOT1功能只是在启动时作为输入口,检测上下拉;之后作为普通GPIO口使用,这样是正确的还是? 谢谢。 |
PB2可以做输出口使用
我的芯片为STM32F405,1M的Flash和192K的Sram;现在我要从1M的Flash启动,此时我就需要BOOT0和BOOT1了,因为此时的1M Flash为系统存储器,是这样的吧!
C:\Users\sdt14256\Desktop\BOOT.png
如上图:主Flash对应的是用户外扩Flash吗?
系统存储器指的是系统自带的1M 存储?
嵌入式SRAM指的是系统自带的192K SRAM?
上面的对应关系正确吧
表3. 自举模式
自举模式选择引脚 自举模式 自举空间
BOOT1 BOOT0
x 0 主Flash 选择主Flash 作为自举空间
0 1 系统存储器 选择系统存储器作为自举空间
1 1 嵌入式SRAM 选择嵌入式SRAM 作为自举空间
以上图片敲出来是这样子的
表3. 自举模式
自举模式选择引脚 自举模式 自举空间
BOOT1 BOOT0
x 0 主Flash 选择主Flash 作为自举空间
0 1 系统存储器 选择系统存储器作为自举空间
1 1 嵌入式SRAM 选择嵌入式SRAM 作为自举空间
主Flash是我外扩的Flash还是系统自带的1M?
正如楼主在7楼的描述程序运行在主Flash
肯定是自带的flash了,只要保证BOOT0为低电平就可以了,BOOT1不用管,直接做IO口使用。
看了大家的回复,问题基本解决,为避免冲突,现将BOOT1和BOOT0都预留出来,PB2口原先做IO口,但是和启动版本有冲突。