MOn51 发表于 2013-3-15 09:09

请问:STM32L152的JTAG端口的Io脚,如何定义成GPIO?

按照库的说明:
这些脚上电默认是JTAG功能,要用映射到映射功能才行。映射后再设置Io的输入,输出吗?

MOn51 发表于 2013-3-15 09:38

1:JTAG转成GPIO问题:
   只举例JDI:

/* JDI To Pa15 */
GPIO_PinAFConfig(GPIOA, GPIO_PinSource15,GPIO_AF_SWJ) ;   //可以这样写吗?

GPIO_InitStructure.GPIO_Pin =GPIO_Pin_15 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;      //这是必须的吗?
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA, &GPIO_InitStructure);      
//**********************************************************
现在要设置了Pa15,但如何设置成输入或输出?
GPIO_Mode_IN
GPIO_Mode_OUT
这2个参数如何传入?

如果我再要换回JDI功能?有如何实现?

2:OSC_INOSC_OUT2个脚如何转成GPIO?
   按手册上,只要关闭HSE就可以了吗?然后当作标准的Pd口操作?
   无需映射操作吗?
   RCC_HSEConfig(RCC_HSE_OFF);

GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;      //这是必须的吗?
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOD, &GPIO_InitStructure);      


3:OSC32_INOSC32_Out 如何从GPIO到晶振脚切换?
   看手册是:上电默认是GPIO功能,还要执行关闭LSE吗?
   看了一些例程,并没有以下的指令?

   RCC_LSEConfig(RCC_LSE_OFF)

   当我要启动32K时钟,必须要手动执行映射功能吗?
   
GPIO_PinAFConfig(GPIOC, GPIO_PinSource14,0) ;   //可以这样写吗?采用Af0
GPIO_PinAFConfig(GPIOC, GPIO_PinSource15,0) ;   //可以这样写吗?采用Af0

上面2条,就可以切换到晶振输入状态了吗?

下面的指令还要处理吗?

GPIO_InitStructure.GPIO_Pin =GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;//这些如何定义?
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;   //这些如何定义?
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;       //这些如何定义?
GPIO_Init(GPIOC, &GPIO_InitStructure);   


弯弯的月神 发表于 2016-2-27 11:42

MOn51 发表于 2013-3-15 09:38
1:JTAG转成GPIO问题:
   只举例JDI:



你好,我想问下你这样的程序试了没,可以吗?

MOn51 发表于 2016-2-28 07:59

肯定测试了,最后用到品上了。

kongyu11 发表于 2025-6-16 14:54

{:biggrin:}
页: [1]
查看完整版本: 请问:STM32L152的JTAG端口的Io脚,如何定义成GPIO?