[STM32F1] 请解STM32 IO口无输出问题

[复制链接]
4760|7
 楼主| lu50211 发表于 2014-10-17 13:39 | 显示全部楼层 |阅读模式
如图,第三四位IDR无变化,ODR有变化,导致IO无输出高低电平。请教各问题出现在哪里?
未命名.JPG
GPIO口配置,如下。
void Motor_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOE,ENABLE);
   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOE,&GPIO_InitStructure);
}
 楼主| lu50211 发表于 2014-10-17 14:59 | 显示全部楼层
问题已经找到,PB3和PB4引脚默认JTDO,NJTRST仿真功能引脚,如果要使用IO口,需要重定义功能。
首先要打开AFIO时钟,
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
然后重定义为IO功能。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//取消JTAG功能,重定义为IO
airwill 发表于 2014-10-17 18:09 | 显示全部楼层
不错啊, 自己找到问题了。支持一下。
GPIO 中就这几个脚默认是外设的,使用的时候确实要留意一下。
mmuuss586 发表于 2014-10-17 19:33 | 显示全部楼层

解决了就好,有多余IO的话,最好不要JTAG相关的IO;
要不然调试的时候,经常切来切去;
 楼主| lu50211 发表于 2014-10-18 08:32 | 显示全部楼层
mmuuss586 发表于 2014-10-17 19:33
解决了就好,有多余IO的话,最好不要JTAG相关的IO;
要不然调试的时候,经常切来切去; ...

我用SWD接口调试的,其它的脚都是空的。
搞IT的 发表于 2014-10-19 10:30 | 显示全部楼层
支持一下!!
搞IT的 发表于 2014-10-21 23:25 | 显示全部楼层
支持一下!!解决就好!!!:)
拿起书本 发表于 2014-10-27 15:26 | 显示全部楼层
  我没仔细研究文档,STM32的SWD口的确有复用,支持一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

438

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部