打印
[STM32F1]

请解STM32 IO口无输出问题

[复制链接]
4390|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lu50211|  楼主 | 2014-10-17 13:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如图,第三四位IDR无变化,ODR有变化,导致IO无输出高低电平。请教各问题出现在哪里?

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;
要不然调试的时候,经常切来切去;

使用特权

评论回复
5
lu50211|  楼主 | 2014-10-18 08:32 | 只看该作者
mmuuss586 发表于 2014-10-17 19:33
解决了就好,有多余IO的话,最好不要JTAG相关的IO;
要不然调试的时候,经常切来切去; ...

我用SWD接口调试的,其它的脚都是空的。

使用特权

评论回复
6
搞IT的| | 2014-10-19 10:30 | 只看该作者
支持一下!!

使用特权

评论回复
7
搞IT的| | 2014-10-21 23:25 | 只看该作者
支持一下!!解决就好!!!:)

使用特权

评论回复
8
拿起书本| | 2014-10-27 15:26 | 只看该作者
  我没仔细研究文档,STM32的SWD口的确有复用,支持一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

432

帖子

9

粉丝