OpenEdv-开源电子网

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

做GPIO测试 PA13 PA14没有反应?

[复制链接]

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
发表于 2014-9-21 18:33:58 | 显示全部楼层 |阅读模式
用大开发板做的测试!

实验1跑马灯.rar

1.33 MB, 下载次数: 78

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

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-21 18:34:54 | 显示全部楼层
int main(void)
 {
delay_init();       //???±??????????   
LED_Init();    //????????LED??????????????
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms
GPIO_SetBits(GPIOA,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms  
}
 }



void LED_Init(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);
  
  
 
 GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);  //????????JTAG

 //??????GPIOB  ???ì????
 GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_3|GPIO_Pin_4);
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
 GPIO_Init(GPIOB, &GPIO_InitStructure); 
 GPIO_SetBits(GPIOB, GPIO_Pin_3|GPIO_Pin_4);
 //??????GPIOA  ???ì????
 GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);  
 GPIO_Init(GPIOA, &GPIO_InitStructure); 
 GPIO_SetBits(GPIOA, GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-21 22:56:50 | 显示全部楼层
回复【2楼】101:
---------------------------------

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);//开启SWD,失能JTAG
用这个,就可以了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-22 10:01:42 | 显示全部楼层
按照原子老师您说的,在大开发板上面测试PA13没有反应? 是不是受那几个电阻影响?没有道理啊?
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-22 14:57:47 | 显示全部楼层
原子老师可以用大开发板做一下测试!加  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);  这个   电平没反应!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-22 21:18:42 | 显示全部楼层
回复【5楼】101:
---------------------------------
你GPIOA时钟忘记开启了。
改为: 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);  
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable , ENABLE);//开启SWD,失能JTAG 

就OK了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-23 16:30:27 | 显示全部楼层
还是没反应
GPIO_ResetBits(GPIOA,GPIO_Pin_13);
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms
GPIO_SetBits(GPIOA,GPIO_Pin_13);
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms  




GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);
 
// ?????¨??
GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure); 



能不能传个可用的代码?
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-23 16:40:22 | 显示全部楼层
大开发板不行吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-24 00:16:59 | 显示全部楼层
回复【7楼】101:
---------------------------------
我给你的就是答案,我在战舰板上测试过的。
你这个初始化要放到操作GPIO之前才行啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-24 10:57:40 | 显示全部楼层
原子老师辛苦了,我是先调用的,放在跑马灯那个源码LED配置函数里,,,然后在main里 调用LED函数,再操作的GPIO,测试的!确实没有反应,不知道哪里出了问题,我有点怀疑代码!
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-24 11:05:21 | 显示全部楼层
后来发现是 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); 是这句话有问题!不知道为什么?
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-24 11:05:58 | 显示全部楼层
GPIO_InitTypeDef GPIO_InitStructure; 
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); 
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);
  
// ?????¨?? 
GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15); 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
GPIO_Init(GPIOA, &GPIO_InitStructure);  

GPIO_ResetBits(GPIOA,GPIO_Pin_13);
delay_ms(1000);  //???±300ms 
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms
GPIO_SetBits(GPIOA,GPIO_Pin_13);
delay_ms(1000);  //???±300ms 
delay_ms(1000);  //???±300ms
delay_ms(1000);  //???±300ms
回复 支持 反对

使用道具 举报

20

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-7-17
在线时间
30 小时
发表于 2014-9-24 17:06:54 | 显示全部楼层
AFIO->MAPR = 0x02000000; //释放出三个JTAG的口,做普通IO口线


  void RCC_Configuration()
{

//AFIO时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE) ;
}
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-25 13:34:40 | 显示全部楼层
楼上都是正解!但是: GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);为神马不对呢?
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-26 14:36:03 | 显示全部楼层
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);这句为什么不能代替GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable , ENABLE);这句呢?
回复 支持 反对

使用道具 举报

7

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2014-6-14
在线时间
1 小时
发表于 2014-10-29 23:01:22 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
 你好原子哥,我想问下寄存器版本的 我要用PA13要怎么改呢
#include "led.h"

void LED_Init(void)
{
RCC->APB2ENR|=1<<2;    //????PORTA?±??      

     
GPIOA->CRH&=0XFFFFFFF0; 
GPIOA->CRH|=0X00000003;//PA.13 ???ì????     
  GPIOA->ODR|=1<<8;      //PA.13 ??????
  

}


int main(void)
{   
Stm32_Clock_Init(9);//??????
delay_init(72);    //?????
LED_Init();    //????LED???????
while(1)
{
LED0=0;
//LED1=1;
delay_ms(300);
LED0=1;
//LED1=0;
delay_ms(300);
}  
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-30 01:24:27 | 显示全部楼层
回复【16楼】tiget327:
---------------------------------
先禁止JTAG.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2014-6-14
在线时间
1 小时
发表于 2014-10-30 09:41:21 | 显示全部楼层
回复【17楼】正点原子:
---------------------------------
新手,就是有点不明白在我现有的程序怎么禁止, 代码是怎么样的,用的寄存器版本, 望指教下
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-30 23:39:15 | 显示全部楼层
回复【18楼】tiget327:
---------------------------------
寄存器版本代码, 在sys.c里面有个 JTAG_Set函数,可以禁止JTAG。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2014-6-14
在线时间
1 小时
发表于 2014-10-31 10:37:41 | 显示全部楼层
回复【19楼】正点原子:
---------------------------------
你好原子哥调出来了在这个位置加了一句就可以了, 这种方法对吗
void LED_Init(void)
{
RCC->APB2ENR|=1<<2;    
//RCC->APB2ENR|=1<<6;   
     
GPIOA->CRH&=0XFFFFFFF0; 
GPIOA->CRH|=0X00000003;  
        GPIOA->ODR|=0<<8;     
  
GPIOA->CRH&=0XFF0FFFFF;
GPIOA->CRH|=0X00300000;
GPIOA->ODR|=1<<13;      
//JTAG_Set(2);
JTAG_Set(JTAG_SWD_DISABLE);
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-31 23:43:37 | 显示全部楼层
回复【20楼】tiget327:
---------------------------------
可以的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2011-12-12
在线时间
6 小时
发表于 2017-6-17 16:10:02 | 显示全部楼层
正点原子 发表于 2014-10-31 23:43
回复【20楼】tiget327:
---------------------------------
可以的

你好。我也遇到这样的问题了,我用的mini学习板,比较早期的V1.6的硬件。现在要把PA13 14 15作为普通IO口来用,但是好像还是不行,用库版本的倒是可以。下面是代码:void JTAG_Set(u8 mode)
{
        u32 temp;
        temp=mode;
        temp<<=25;
        RCC->APB2ENR|=1<<0;     //开启辅助时钟           
        AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
        AFIO->MAPR|=temp;       //设置jtag模式
}


然后我在主程序下边是这样的:
int main(void)
{               
               Stm32_Clock_Init(9);//系统时钟设置
                delay_init(72);                //延时初始化72
                uart_init(72,9600); //串口1初始化  
         
    JTAG_Set(JTAG_SWD_DISABLE);


接着就是其他子函数里IO口的配置,但是还是不能拉低,在mini开发板上也是,在我自己做的一个RCT6上也是不能拉低,用库函数就都可以:

        GPIOA->CRH&=0X00000FFF;
        GPIOA->CRH|=0X33333000;
        GPIOA->ODR|=0<<14;
        GPIOA->ODR|=0<<15;

配置问题吗?PA的其他端口都正常。不知道是怎么回事。

回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-18 04:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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