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