新手上路
- 积分
- 39
- 金钱
- 39
- 注册时间
- 2017-12-13
- 在线时间
- 8 小时
|
最近发了两帖子,发现都没人回答。
但是,最后发现是自己的粗心大意才导致的BUG,实在惭愧。
(由于项目需要,需要做移植,但是由于楼主太久没接触STM32导致以前所学的基本忘光了。所以一直在边移植边学习 ZET6 移植到 C8T6)
但是这次在移植 KEY 的时候就出了很多问题。
首先要注意的是:C8T6 仅仅有GPIOA、GPIOB。并不像 ZET6有那么多的IO口。
而出玄学BUG的问题就出现在引脚的选择问题上。
原子哥的战舰V2.1版本中给的例程4个按钮分别使用了 PA0、PE2、PE3、PE4。鉴于 C8T6 没有 PE 引脚,所以我就使用 PB引脚来代替了。
仿真很完美的通过了。但是把程序烧写到板子中(C8T6,原子没出这个型号的板子就随便买了一个),BUG不断。
1.上拉输入,默认应该是高电平。但是有些引脚输出只有0.6V。
2.于是设置为下拉输入,默认应该是高电平,但是引脚却一直输出高电平 3.3V。
问题困扰了我一天,我试着重写程序,用不同的板子,不同的芯片。结果发现 C8T6 的板子都是这个问题。结果,查了一下寄存器,和最小系统板的电路布局。
上图就是PB4引脚一直为高电平的问题。(STM32中文参考手册p106)
部分引脚上拉无法达到 3.3V 的原因是因为 和 BOOT 连接,亦或者是 JTAG 所使用到的引脚。
发现 48 个io 引脚,真在用起来安全的,剩下都不多了。。。
|
|