OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4176|回复: 5

配置好了GPIO  但怎么输出不在不正确呢???求指点

[复制链接]

22

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-11-19
在线时间
22 小时
发表于 2014-11-28 16:53:24 | 显示全部楼层 |阅读模式
5金钱
void GPIO_Config(void)
{

 GPIO_InitTypeDef GPIO_InitStructure;
 /*****************Config LED0&LED1 PF6 PF7**********************************/
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);
 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7|GPIO_Pin_6;
 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
 GPIO_Init(GPIOF,&GPIO_InitStructure);
 /***************Config USART2 Pin Mode PA2=U2_TX,PA3=U2_RX*************************/
  

 //MODbus   USART2
 //config RX PA3
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  
  // 配置 USART2 Tx (PA.2) 为复用推免输出 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  //配置USART2的485的驱动管脚PA0 
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_0;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
  GPIO_Init(GPIOA, &GPIO_InitStructure);

 //**************************************************************
  //配置PA5,ADC_Channel_5,PA4 AD_Channel_4
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入引脚
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入引脚
GPIO_Init(GPIOA, &GPIO_InitStructure);
//___________________________________________________
 GPIO_InitStructure.GPIO_Pin=(GPIO_Pin_12|GPIO_Pin_15|GPIO_Pin_13|GPIO_Pin_14);
   GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
   GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
   GPIO_Init(GPIOA,&GPIO_InitStructure);
   GPIO_SetBits(GPIOA,GPIO_Pin_12);  
    GPIO_ResetBits(GPIOA,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15)  ;

}



 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 |RCC_APB2Periph_USART1 |RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC |RCC_APB2Periph_GPIOD |RCC_APB2Periph_GPIOE| RCC_APB2Periph_GPIOF| RCC_APB2Periph_AFIO, ENABLE);



首先, 时钟(紫色部分)肯定是打开了。。。。我想问的是void GPIO_Config(void)  这个函数中绿色的部分。。。我吧PA12.13.14.15配置成了推挽输出,然后PA12输出高电平,PA13.14.15输出低电平,。。。但当用电压表分别测PA12,13,14,15对地的电压是,发现不正确。。PA12---3.3v  A13--3.3V左右,PA14---几mv(正常)  pA15--3.3V


为什么PA13,PA15不是输出的低电平呢、。。、我看到13,14,15与Jlink 有关,是不是这方面的原因呀》??? 或者是其他的什么原因?   求指点

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
发表于 2014-11-28 16:56:45 | 显示全部楼层
你配置USART2的引脚,打开的时钟却是USART1...
回复

使用道具 举报

22

主题

2254

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4486
金钱
4486
注册时间
2013-4-22
在线时间
337 小时
发表于 2014-11-28 17:07:21 | 显示全部楼层
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; 换成低一点的试试
回复

使用道具 举报

22

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-11-19
在线时间
22 小时
 楼主| 发表于 2014-11-28 17:20:07 | 显示全部楼层
回复【2楼】Scy:
---------------------------------
不是的。。。应该再其他里面打开了。。。串口什么都工作正常。。。关键是IO口。。。应该是跟JTAG有关。。。正在搜资料。。谢谢
回复

使用道具 举报

22

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-11-19
在线时间
22 小时
 楼主| 发表于 2014-11-28 17:20:27 | 显示全部楼层
回复【4楼】xiaopidan:
---------------------------------
恩 我试试。。谢谢   正在搜资料 
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-28 17:41:37 | 显示全部楼层
再发这种没有主题的帖子,直接禁止IP!!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-28 14:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表