[其他ST产品] STM32G030F6的多管脚共用的IO怎么配置?

[复制链接]
8704|20
手机看帖
扫描二维码
随时随地手机跟帖
feifan570|  楼主 | 2021-9-22 16:12 | 显示全部楼层 |阅读模式
这个芯片很多管脚都是多个管脚功能的,比如15脚有多个功能的:PB0,PB1,PB2,PA8,这个管脚默认是不是PB0?那么我想用的PA8的功能,我在那里配置呢?
我看参考手册的GPIO、SYSCFG章节都没有找到相应的配置。
io.jpg

使用特权

评论回复
香水城| | 2021-9-22 16:18 | 显示全部楼层
对于一个封装来说,各个管脚的默认功能是固定的啊。
35144614ae6cbc3c00.png

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

使用特权

评论回复
feifan570|  楼主 | 2021-9-22 16:36 | 显示全部楼层
不明白,比如TSSOP20封装的15脚,上面有PB0,PB1,PB2,PA8共用,我怎么选择其中一个呢?
io2.jpg

使用特权

评论回复
skyred| | 2021-9-22 16:47 | 显示全部楼层
你需要什么功能,然后做什么配置。

使用特权

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

使用特权

评论回复
一叶倾城wwq| | 2021-9-22 17:59 | 显示全部楼层
楼主直接用cube配置,如果能配置就可以用

使用特权

评论回复
feifan570|  楼主 | 2021-9-22 18:27 | 显示全部楼层
一叶倾城wwq 发表于 2021-9-22 17:59
楼主直接用cube配置,如果能配置就可以用

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

使用特权

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

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

使用特权

评论回复
香水城| | 2021-9-22 23:06 | 显示全部楼层
60922614b46688f417.png

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 */
  }

}

使用特权

评论回复
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 捕捉中断没有进。

使用特权

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

使用特权

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

使用特权

评论回复
laocuo1142| | 2021-9-23 09:27 | 显示全部楼层
感觉你说的不对啊,管脚应该是固定的,功能可能是多种多样

使用特权

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

使用特权

评论回复
海洋无限| | 2021-9-24 14:09 | 显示全部楼层
感觉你的理解不太对吧

使用特权

评论回复
feifan570|  楼主 | 2021-9-25 09:10 | 显示全部楼层
海洋无限 发表于 2021-9-24 14:09
感觉你的理解不太对吧

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

使用特权

评论回复
heimaojingzhang| | 2021-10-10 12:31 | 显示全部楼层
楼主是想要复用引脚吗

使用特权

评论回复
keaibukelian| | 2021-10-10 12:32 | 显示全部楼层
一般情况下默认的是第一功能吗

使用特权

评论回复
labasi| | 2021-10-10 12:34 | 显示全部楼层
要软件选择启用什么功能

使用特权

评论回复
paotangsan| | 2021-10-10 12:36 | 显示全部楼层
什么叫做多管脚共用啊

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 呐咯密密 得到打赏 ¥310.00
  • 2 qbwww 得到打赏 ¥215.00
  • 3 yanzhengxin1 得到打赏 ¥150.00
  • 4 full_stack 得到打赏 ¥100.00
  • 5 laocuo1142 得到打赏 ¥55.00
  • 6 zhangjiantao 得到打赏 ¥50.00
  • 7 二哲科技 得到打赏 ¥50.00
  • 8 cjseng 得到打赏 ¥50.00
  • 9 qintian0303 得到打赏 ¥25.00
  • 10 逍遥李 得到打赏 ¥20.00
在线客服 快速回复 返回顶部 返回列表