<h2>一、GPIO主要特点</h2>
<p>主要特征 :</p>
<p>1、输入模式</p>
<p>⚫ 模拟输入</p>
<p>⚫ 浮空输入</p>
<p>⚫ 上拉输入</p>
<p>2、 输出模式</p>
<p>⚫ 推挽输出</p>
<p>⚫ 开漏输出</p>
<p>⚫ 可配置最大输出速率</p>
<p>3、复用功能</p>
<p>4、GPIO 都可以作为外部中断/唤醒线</p>
<h2>二、GPIO构造区别对比</h2>
<p>F003 GPIO内部构造图</p>
<p><img src="data/attachment/forum/202508/17/134127hixsi749t20xi4ei.png" alt="1.png" title="1.png" />F030 GPIO内部构造图</p>
<p><img src="data/attachment/forum/202508/17/134835qss5ss52f5k2k7ci.png" alt="2.png" title="2.png" /></p>
<p>1、从两张图片可以清晰的,F003缺少下拉电路,因此无法下拉输入,从端口控制寄存器也可以看到,输入模式只能选择浮空输入和上拉输入。</p>
<p><img src="data/attachment/forum/202508/17/140803zsyts938nyketjvx.png" alt="3.png" title="3.png" /></p>
<p>2、输出功能到输出控制,F003缺少选择器,因此在将GPIO配置为其他外设时,没有复用选择设置寄存器。<strong>外设模块的输出会直接到端口输出寄存器上,可理解为外设的优先级更高</strong>。</p>
<p><img src="data/attachment/forum/202508/17/144059b7kpjh3h37h37jt3.png" alt="6.png" title="6.png" /></p>
<p><img src="data/attachment/forum/202508/17/141914plt0f2fafha5f58t.png" alt="4.png" title="4.png" /></p>
<p>3、速度配置:通过配置 GPIOx_CTRL2 寄存器选择输出速度最大为 2MHz 或 10MHz。因此如果要使用模拟串口或者其他通讯协议时,需要注意IO翻转速度会限制模式通讯频率。</p>
<h2>三、特殊GPIO使用注意事项</h2>
<p>从数据手册中我们可以看到<strong>PB4、PB5是纯开漏输出</strong>,因此在需要对外输出高电平时,需要外部加上拉电阻,同样在配置为串口和IIC功能时也需要加外部上拉电阻。</p>
<p><img src="data/attachment/forum/202508/17/142218gybpbq8zllyyb1bs.png" alt="5.png" title="5.png" /></p>
<p>复位之后,除了调试接口 PD1 和 PD2,所有的引脚都是浮空输入模式。复位后,调试引脚 PD1 和 PD2 被置为复用功能,其中 PD1 为上拉模式。当关闭调试功能后,作为普通的 GPIO 引脚。建议如果要将PD1和PD2设置为其他功能时,建议不要在上电初始化时就更改掉,防止后续无法再下载程序。</p>
<h2>四、总结</h2>
<p>F003做为32位入门级别M0,在使用方式上偏向于8位MCU,精简了很多功能寄存器。同时有部分需要特殊注意的IO端口PB4、PB5、PD1和PD2,在使用的时候要注意。</p>
|