打印
[其他ST产品]

STM32G030F6的多管脚共用的IO怎么配置?

[复制链接]
9838|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这个芯片很多管脚都是多个管脚功能的,比如15脚有多个功能的:PB0,PB1,PB2,PA8,这个管脚默认是不是PB0?那么我想用的PA8的功能,我在那里配置呢?
我看参考手册的GPIO、SYSCFG章节都没有找到相应的配置。

io.jpg (332.25 KB )

io.jpg

使用特权

评论回复
沙发
香水城| | 2021-9-22 16:18 | 只看该作者
对于一个封装来说,各个管脚的默认功能是固定的啊。


你说的 PB0,PB1,PB2,PA8 其实对应到不同的封装了。

使用特权

评论回复
板凳
feifan570|  楼主 | 2021-9-22 16:36 | 只看该作者
不明白,比如TSSOP20封装的15脚,上面有PB0,PB1,PB2,PA8共用,我怎么选择其中一个呢?

io2.jpg (261.15 KB )

io2.jpg

使用特权

评论回复
地板
skyred| | 2021-9-22 16:47 | 只看该作者
你需要什么功能,然后做什么配置。

使用特权

评论回复
5
feifan570|  楼主 | 2021-9-22 16:57 | 只看该作者
我要使用15脚 TIM1_CH1功能,通过数据手册,可以看到这是PA8的可选功能。那么如果PA8是一个独立管脚,那么只需要配置PA8的AF2功能即可,但现在的15脚可能不是PA8的功能了,那么我对PA8配置不能产生作用在15脚上了。

使用特权

评论回复
6
一叶倾城wwq| | 2021-9-22 17:59 | 只看该作者
楼主直接用cube配置,如果能配置就可以用

使用特权

评论回复
7
feifan570|  楼主 | 2021-9-22 18:27 | 只看该作者
一叶倾城wwq 发表于 2021-9-22 17:59
楼主直接用cube配置,如果能配置就可以用

我是用cube配置了,但是不起作用,我看代码它只是对PA8的功能进行配置,没看到把15脚配置成PA8的代码。不知道TIM1 CH1不起作用的原因是不是跟没有把15脚配置成PA8有关。

使用特权

评论回复
8
一叶倾城wwq| | 2021-9-22 18:58 | 只看该作者
feifan570 发表于 2021-9-22 18:27
我是用cube配置了,但是不起作用,我看代码它只是对PA8的功能进行配置,没看到把15脚配置成PA8的代码。不 ...

那你看TIM1定时器那个图形界面显示的CH1配置OK了没?都配置好了烧录芯片没有功能,还不行就问下技术支持呗,没碰到过这个问题,我用过G030的脉冲捕获CH通道,不过封装时48脚的

使用特权

评论回复
9
香水城| | 2021-9-22 23:06 | 只看该作者


void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};
  if(htim->Instance==TIM1)
  {
  /* USER CODE BEGIN TIM1_MspPostInit 0 */

  /* USER CODE END TIM1_MspPostInit 0 */

    __HAL_RCC_GPIOA_CLK_ENABLE();
    /**TIM1 GPIO Configuration
    PA8     ------> TIM1_CH1
    */
    GPIO_InitStruct.Pin = GPIO_PIN_8;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF2_TIM1;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  /* USER CODE BEGIN TIM1_MspPostInit 1 */

  /* USER CODE END TIM1_MspPostInit 1 */
  }

}

使用特权

评论回复
10
feifan570|  楼主 | 2021-9-22 23:38 | 只看该作者
香水城 发表于 2021-9-22 23:06
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

Cube生产的代码和您这段代码差不多,但是现在TIM1 CH1的脉冲捕捉功能没起作用。我用示波器看管脚是有脉冲信号的,但是TIM1 捕捉中断没有进。

使用特权

评论回复
11
diweo| | 2021-9-23 07:57 | 只看该作者
在内部各IO还是分开的,只不过到芯片外部时共用一个物理引脚而已。所以该怎么用就怎么用,只不过同一时刻只能使用特定一个引脚的功能。

使用特权

评论回复
12
diweo| | 2021-9-23 07:59 | 只看该作者
所以你只需要正常按照PA8来使用第15引脚就可以了。至于PB0,PB1,PB2,就当它们不存在。

使用特权

评论回复
13
laocuo1142| | 2021-9-23 09:27 | 只看该作者
感觉你说的不对啊,管脚应该是固定的,功能可能是多种多样

使用特权

评论回复
14
feifan570|  楼主 | 2021-9-23 10:56 | 只看该作者
找到问题了:cube生成的代码没有调用LL_TIM_CC_EnableChannel(TIM1,LL_TIM_CHANNEL_CH1);手动添加了就OK了。感谢大家的支持和帮助!!!

使用特权

评论回复
15
海洋无限| | 2021-9-24 14:09 | 只看该作者
感觉你的理解不太对吧

使用特权

评论回复
16
feifan570|  楼主 | 2021-9-25 09:10 | 只看该作者
海洋无限 发表于 2021-9-24 14:09
感觉你的理解不太对吧

是的,我原来的理解是多功能共用一个管脚的,要软件选择启用其中一个功能,现在我发现根本不用设置,就当它是独立的管脚来用就可以了。

使用特权

评论回复
17
heimaojingzhang| | 2021-10-10 12:31 | 只看该作者
楼主是想要复用引脚吗

使用特权

评论回复
18
keaibukelian| | 2021-10-10 12:32 | 只看该作者
一般情况下默认的是第一功能吗

使用特权

评论回复
19
labasi| | 2021-10-10 12:34 | 只看该作者
要软件选择启用什么功能

使用特权

评论回复
20
paotangsan| | 2021-10-10 12:36 | 只看该作者
什么叫做多管脚共用啊

使用特权

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

本版积分规则

92

主题

195

帖子

1

粉丝