硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4941|回复: 20
收起左侧

[技术讨论] STM32G031J6M6,4脚当普通IO口来用,没反应

[复制链接]

3

主题

19

回帖

28

积分

新手上路

积分
28
发表于 2020-3-23 20:34:26 | 显示全部楼层 |阅读模式
如题,STM32G031J6M6,4脚当普通IO口来用,没反应,还需要配置什么?有人知道吗?
微信截图_20200323203334.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2020-3-23 21:04:18 | 显示全部楼层
这个引脚不是什么特殊引脚,按说问题不大。
回复

使用道具 举报

3

主题

19

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-3-23 21:38:20 | 显示全部楼层
eric2013 发表于 2020-3-23 21:04
这个引脚不是什么特殊引脚,按说问题不大。

也是NRST脚
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2020-3-24 01:00:36 | 显示全部楼层

我还真没有设置过将NRST引脚做通用IO引脚使用。
回复

使用道具 举报

3

主题

19

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-3-24 14:36:14 | 显示全部楼层
eric2013 发表于 2020-3-24 01:00
我还真没有设置过将NRST引脚做通用IO引脚使用。

这是新出的IC
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2020-3-24 14:38:44 | 显示全部楼层

嗯,这个只能你查阅手册测试下了,我手头没有这类芯片,没法帮你做验证。
回复

使用道具 举报

3

主题

19

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-3-24 16:23:08 | 显示全部楼层
eric2013 发表于 2020-3-24 14:38
嗯,这个只能你查阅手册测试下了,我手头没有这类芯片,没法帮你做验证。

mco.png
应该只能配置成MCO模式,不能当普通IO口用了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2020-3-24 16:28:16 | 显示全部楼层
guimeng 发表于 2020-3-24 16:23
应该只能配置成MCO模式,不能当普通IO口用了

MCO是复用功能,正常来说也是应该可以做通用IO的。

回复

使用道具 举报

3

主题

19

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-3-24 16:30:44 | 显示全部楼层
eric2013 发表于 2020-3-24 16:28
MCO是复用功能,正常来说也是应该可以做通用IO的。

/** Configure pins as
        * Analog
        * Input
        * Output
        * EVENT_OUT
        * EXTI
*/
void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOA_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);

  /*Configure GPIO pin : PA0 */
  GPIO_InitStruct.Pin = GPIO_PIN_0;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

}
配置程序就是这样,不知道还要设置那里,和普通IO口配置一样。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2020-3-24 16:32:08 | 显示全部楼层
guimeng 发表于 2020-3-24 16:30
/** Configure pins as
        * Analog
        * Input

看参数手册,检索NRST,正常参考手册肯定有说明的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2020-3-25 00:18:37 | 显示全部楼层
guimeng 发表于 2020-3-24 16:30
/** Configure pins as
        * Analog
        * Input

还是群友看的仔细,都没有看你的代码就直接回复了,你这个配置的不是PF2啊。
回复

使用道具 举报

3

主题

19

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-3-25 08:27:41 | 显示全部楼层
eric2013 发表于 2020-3-25 00:18
还是群友看的仔细,都没有看你的代码就直接回复了,你这个配置的不是PF2啊。

配置PF2也是没有输出,一直高电平
/** Configure pins as
        * Analog
        * Input
        * Output
        * EVENT_OUT
        * EXTI
*/
void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOF_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOF, GPIO_PIN_2, GPIO_PIN_RESET);

  /*Configure GPIO pin : PA0 */
  GPIO_InitStruct.Pin = GPIO_PIN_2;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);

}

除了电源脚和这个复位脚,其他脚我配置都有输出,
回复

使用道具 举报

3

主题

19

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-3-25 08:32:04 | 显示全部楼层
eric2013 发表于 2020-3-25 00:18
还是群友看的仔细,都没有看你的代码就直接回复了,你这个配置的不是PF2啊。

PF2  PA0 PA1 PA2 都是用这个脚的,
其他脚位也是几个IO口一起,配置任意一个IO都有输出
回复

使用道具 举报

4

主题

117

回帖

129

积分

初级会员

积分
129
发表于 2020-3-26 14:06:30 | 显示全部楼层
根据我的经验默认的是PF的功能,而你配的是PA的功能。估计软件或OPTION byte 中有切换引脚的功能
回复

使用道具 举报

4

主题

117

回帖

129

积分

初级会员

积分
129
发表于 2020-3-26 14:09:49 | 显示全部楼层
在该芯片CUBEMAX软件的sys中就有切换引脚的选项。配置一下看看就可以了。我也在用G031不过是20脚的。
回复

使用道具 举报

3

主题

19

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-3-26 14:44:58 | 显示全部楼层
hance2000 发表于 2020-3-26 14:09
在该芯片CUBEMAX软件的sys中就有切换引脚的选项。配置一下看看就可以了。我也在用G031不过是20脚的。

switch.png
是这里吗?勾上一样没有用
回复

使用道具 举报

3

主题

19

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-3-26 15:21:02 | 显示全部楼层
hance2000 发表于 2020-3-26 14:06
根据我的经验默认的是PF的功能,而你配的是PA的功能。估计软件或OPTION byte 中有切换引脚的功能

应该要修改Option bytes才可以
回复

使用道具 举报

210

主题

1045

回帖

1685

积分

至尊会员

More we do, more we can do.

积分
1685
发表于 2020-3-30 12:27:38 | 显示全部楼层
文档里没有特别说,这个功能和Remap是不同的,是多个引脚邦定在一起,STM8S文档里有写:
The user is responsible for
the proper setting of the GPIO modes in order to avoid conflicts between GPIOs bonded to
the same pin (including their alternate functions).
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-6-16 09:49:40 | 显示全部楼层
碰到同样的问题,请问楼主解决了没?
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-6-16 10:21:45 | 显示全部楼层
解决了, 供后来的人们解惑。STM32 ST-LINK Utility软件 -->Target --> Option Bytes,设置NRST_MODE.
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2022-5-7 18:52:56 | 显示全部楼层
zkb133 发表于 2020-6-16 10:21
解决了, 供后来的人们解惑。STM32 ST-LINK Utility软件 -->Target --> Option Bytes,设置NRST_MODE.

改成什么?我修改后运行不了了。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 07:52 , Processed in 0.406202 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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