
先说下发现要使用PA15当作普通IO使用的原因: 在我设计的密码锁控制器中使用了PA15引脚,PA15通过三极管控制键盘的LED背光如图 ![]() 在调试时,刚开始一上电LED就亮,因为LED使用了5V电源,而STM32引脚输出为3.3V,以为三极管常导通,归纳为硬件设计的问题。后来要找出原因,所以就查到了原来就因为PA15是个复用引脚。找到原因就简单了,关闭JTAG功能,把PA15当作普通IO口使用就行了。而下载调试程序就要使用SWD功能(平常应该都是用的SWD下载调试)。 在IO端口初始化时加入如下程序 ![]() 初始化中复用端口“RCC_APB2Periph_AFIO”必须使能才可以关闭JTAG,RCC_APB2Periph_GPIOA可以在这儿使能也可以不在这儿使能。: u7 J x" Z8 k6 L! z, J& v8 ? 其中用到的宏定义都在相应的库函数中,这儿整理后如下: ![]() ![]() 做完这些后写下测试程序测试下: G. E/ o- o$ {5 m2 Y ![]() 这样可以看到IO口可以正常使用了。关于JTAG使用到的其他IO口应该也可以这样当作普通IO口使用。大家可以试下。 ![]() 在这儿随便问下,三极管的B极上拉到3.3V(或去掉外面的这个电阻,使用内部上拉)C极通过LED和电阻接5V电源,这样设计是否合适,大家在驱动LED时都是怎么设计的,欢迎大家一直讨论下。! m, C+ p; d. C8 V m2 d |
不客气,把自己的经验分享下,让别人少走点弯路。
恩,这里是很容易忽略的地方。
谢谢支持
恩,谢谢!我测试着可以正常使用,就怕以后出现问题。