搜索
查看: 2139|回复: 6

[已解决] stm32l496 G端口I2C1没有输出,其他口却可以?

[复制链接]

该用户从未签到

31

主题

66

帖子

3

蝴蝶豆

高级会员

最后登录
2020-12-16
发表于 2018-4-4 09:22:13 | 显示全部楼层 |阅读模式
最近调试496 I2C遇到个问题。I2C1映射到Port G PG13/PG14没有输出,然而映射到B端口 PB6/PB7却正常。初始化代码如下,已经使能了VDDIO2。请问哪位高手有经验,是否G端口还有其他设置? 谢谢。

    LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOG);
    HAL_PWREx_EnableVddIO2();

    LL_GPIO_SetPinMode(GPIOG, LL_GPIO_PIN_13, LL_GPIO_MODE_ALTERNATE);
    LL_GPIO_SetAFPin_0_7(GPIOG, LL_GPIO_PIN_13, LL_GPIO_AF_4);
    LL_GPIO_SetPinSpeed(GPIOG, LL_GPIO_PIN_13, LL_GPIO_SPEED_FREQ_HIGH);
    LL_GPIO_SetPinOutputType(GPIOG, LL_GPIO_PIN_13, LL_GPIO_OUTPUT_OPENDRAIN);
    LL_GPIO_SetPinPull(GPIOG, LL_GPIO_PIN_13, LL_GPIO_PULL_UP);

    LL_GPIO_SetPinMode(GPIOG, LL_GPIO_PIN_14, LL_GPIO_MODE_ALTERNATE);
    LL_GPIO_SetAFPin_0_7(GPIOG, LL_GPIO_PIN_14, LL_GPIO_AF_4);
    LL_GPIO_SetPinSpeed(GPIOG, LL_GPIO_PIN_14, LL_GPIO_SPEED_FREQ_HIGH);
    LL_GPIO_SetPinOutputType(GPIOG, LL_GPIO_PIN_14, LL_GPIO_OUTPUT_OPENDRAIN);
    LL_GPIO_SetPinPull(GPIOG, LL_GPIO_PIN_14, LL_GPIO_PULL_UP);

回复

使用道具 举报

  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    49

    主题

    3724

    帖子

    429

    蝴蝶豆

    论坛元老

    最后登录
    2021-8-7
    发表于 2018-4-4 09:36:07 | 显示全部楼层
    用HAL库试一下,LL库可能会有坑,HAL库相对靠谱些。
    前段时间有坛友说STM32F103的LL库有坑,经我实验确认的确有坑,无法操作8到15的IO口。

    评分

    参与人数 1蝴蝶豆 +3 收起 理由
    zero99 + 3

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    1002

    帖子

    363

    蝴蝶豆

    版主

    最后登录
    2021-4-15
    发表于 2018-4-4 09:39:24 | 显示全部楼层
    I2C我记得要配置成开漏输出,然后外部上拉!!!当然了我不知道你这里的不输出指的是啥?没法直接拉高电平?还是说I2C没法输出高电平?

    评分

    参与人数 1蝴蝶豆 +2 收起 理由
    zero99 + 2

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    133

    主题

    4688

    帖子

    239

    蝴蝶豆

    版主

    最后登录
    2021-4-10
    发表于 2018-4-4 09:47:57 | 显示全部楼层
    我看了一下手册,PB6 PB7还有I2C4的功能,楼主用的是I2C几?最好是用cubemx生成一个例程看看。

    评分

    参与人数 1蝴蝶豆 +2 收起 理由
    zero99 + 2

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31

    主题

    66

    帖子

    3

    蝴蝶豆

    高级会员

    最后登录
    2020-12-16
     楼主| 发表于 2018-4-4 14:46:52 | 显示全部楼层
    确定用的I2C1,  发送地址后ISR中的BUSY一直为1,也不产生STOP;
    同样的设置I2C2 发送却没问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    133

    主题

    4688

    帖子

    239

    蝴蝶豆

    版主

    最后登录
    2021-4-10
    发表于 2018-4-8 09:59:02 | 显示全部楼层
    示波器看一下波形是否正常?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31

    主题

    66

    帖子

    3

    蝴蝶豆

    高级会员

    最后登录
    2020-12-16
     楼主| 发表于 2018-4-13 08:48:57 | 显示全部楼层
    谢谢以上的回复。我用HAL库发现正常,看来LL还是有些设置没考虑到,我也不想费时去比较差异了,先这么用着。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-4-26 01:01 , Processed in 1.191653 second(s), 41 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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