stm32f103zet6的PA4怎么不能做普通IO口用呢?
PA4是 可以直接当做 普通IO端口使用的, 复位后就直接可以使用.....
你是怎么判断不能使用的呢, 还有你代码段写了多大, 会不会在其他地方不经意配置错了呢。建议仔细检查一下代码, 另外,PA13,PA14那些jtag用到的端口,也不是绝对不可以当做普通io端口使用,只要不工作在jtag模式,就可以通过软件禁止jtag模式, 使其恢复至 普通io作用。
我写了一个用PA4点亮led的程序,试过了所有的IO,就只有PA4\13\14\15以及PB3\4不能用,昨天才到的开发板,我真不知道是怎么回事,新手。程序附上:
#include<stm32f10x.h>
#include<delay.h>
void GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ALL,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
int main(void)
{
SystemInit(); //Setup STM32 system (clock, PLL and Flash configuration)
GPIO_Config();
GPIO_SetBits(GPIOA,GPIO_Pin_4);
while (1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_4);
delay_ms(1000);
GPIO_SetBits(GPIOA,GPIO_Pin_4);
delay_ms(1000);
}
}
程序没有问题, 那几个脚是因为主复位是处于jtag模式,而你恰好又使用的是jtag 调试,所以不能软件禁止。
个人觉得你现在可以:
1、看一下开发板的电路图, 看一下pa4是否在理论上连接到插针上,还要看是否在那儿硬件拉低了。这一步排除理论上的因素
2. 检查一下 插针到 stm32f103单片机引脚的电路是否导通, 可以用万用表测试, 还应该检测一下是否能被正确的拉高 或者拉低。
感觉就是有利必有弊
复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式(CNFx[1:0]=01b,
MODE[1:0]=00b)。
复位后,JTAG引脚被置于输入上拉或下拉模式:
─ PA15:JTDI置于上拉模式
─ PA14:JTCK置于下拉模式
─ PA13:JTMS置于上拉模式
─ PB4: JNTRST置于上拉模式
感谢小编的分享!
HQchip华强芯城--工程师的元器件商城
《孙立波1小时征服STM8》
