找回密码
 立即注册
查看: 87|回复: 4

32G8K64-I2C引脚配置问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-20 21:48:04
已绑定手机

2

主题

1

回帖

16

积分

新手上路

积分
16
发表于 2025-7-14 22:24:56 | 显示全部楼层 |阅读模式
截图202507142215392782.jpg 截图202507142216491817.jpg 硬件上是这么连接的,没有使用上拉电阻



软件上是这么配置的
        GPIO_InitStructure.Pin  = GPIO_Pin_4|GPIO_Pin_5;                //I2C

        GPIO_InitStructure.Mode = GPIO_OUT_PP;        //

        GPIO_Inilize(GPIO_P1,&GPIO_InitStructure);        //初始化





/****************  I2C初始化函数 *****************/
void I2C_config(void)
{
        I2C_InitTypeDef                I2C_InitStructure;
        I2C_InitStructure.I2C_Mode      = I2C_Mode_Master;                //主从选择   I2C_Mode_Master, I2C_Mode_Slave
        I2C_InitStructure.I2C_Enable    = ENABLE;                                //I2C功能使能,   ENABLE, DISABLE
        I2C_InitStructure.I2C_MS_WDTA   = DISABLE;        
        I2C_InitStructure.I2C_Speed                = 63;
        I2C_Init(&I2C_InitStructure);
        NVIC_I2C_Init(I2C_Mode_Master,DISABLE,Priority_0);        //主从模式, I2C_Mode_Master, I2C_Mode_Slave; 中断使能, I2C_ESTAI/I2C_ERXI/I2C_ETXI/I2C_ESTOI/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
        I2C_SW(I2C_P14_P15);                                        //I2C_P14_P15,I2C_P24_P25,I2C_P76_P77,I2C_P33_P32
}




测试函数是这么写的

                                        /*读取F11卡里的数据**/
                                        FM11_CSN_L;
                                        I2C_ReadNbyte(0xAE, temp_U16_count, read_tmp, 4);
                                        FM11_CSN_H;
                                        /**显示读取到的数据**/
                                        PrintString1("AA");//1S进入一次
                                        TX1_write2buff(temp_U16_count>>8);
                                        TX1_write2buff((uint8)temp_U16_count);
                                        for(i=0;i<4;i++)
                                        {
                                                TX1_write2buff(read_tmp);        //将受到的数据发出
                                        }
出来的数据却全部是这样的,不知道哪里出了问题,向高手请教一下,十分感谢!
截图202507142223136237.jpg



截图202507142215287429.jpg
回复

使用道具 举报 送花

3

主题

247

回帖

-795

积分

等待验证会员

积分
-795
发表于 2025-7-14 22:28:00 | 显示全部楼层
针对您提供的STC32G8K64 I2C引脚配置问题,以下为专业分析与建议:

从硬件连接图来看,I2C通信所使用的GPIOP1.4(SDA)和GPIOP1.5(SCL)未使用上拉电阻。在标准I2C协议中,SDA和SCL线需要外部上拉电阻以确保信号在空闲状态下保持高电平。若未接上拉电阻,可能导致通信不稳定、数据传输错误或无法检测到设备。

从软件配置来看,您将GPIOP1.4和GPIOP1.5配置为推挽输出模式(GPIOOUTPP),并初始化了I2C模块。然而,I2C通信要求SDA和SCL引脚在主设备发送时为输出,在接收时为输入。仅设置为输出模式可能无法满足I2C协议的双向通信需求,特别是在主设备发送地址和数据时,需要能够控制引脚状态,而在接收应答信号时需要读取引脚电平。

建议修改GPIO配置如下:
  1. c
  2. GPIOInitStructurePin = GPIOPin4 | GPIOPin5; // I2C
  3. GPIOInitStructureMode = GPIOALTOPENDRAIN;     // 改为开漏输出模式
  4. GPIOInit(GPIOP1, &GPIOInitStructure);         // 初始化
复制代码

同时,建议在PCB设计中添加适当的上拉电阻(通常为4.7kΩ),以确保I2C总线在空闲时维持高电平。

此外,检查I2C初始化参数是否正确,特别是I2CSpeed值是否符合实际时钟频率。若您使用的是内部RC振荡器,请确认其频率是否稳定,并确保I2C时钟分频设置合理。

综上所述,建议对GPIO配置进行调整,并在硬件上添加上拉电阻,以确保I2C通信的稳定性与可靠性。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-20 21:48:04
已绑定手机

2

主题

1

回帖

16

积分

新手上路

积分
16
发表于 2025-7-14 22:46:33 | 显示全部楼层

MCU作为I2C主机
我将口这样设置
P1_MODE_IO_PU(GPIO_Pin_4 | GPIO_Pin_5);
但是结果还是一样


我的意思是,一定要将口设置为开漏输出,并且在外面设置上拉电阻吗?

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:144
  • 最近打卡:2025-07-31 10:37:58

760

主题

1万

回帖

1万

积分

管理员

积分
18139
发表于 2025-7-14 22:49:45 | 显示全部楼层
截图202507142247353012.jpg


截图202507142248448815.jpg

截图202507142249403132.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:144
  • 最近打卡:2025-07-31 10:37:58

760

主题

1万

回帖

1万

积分

管理员

积分
18139
发表于 2025-7-14 22:52:27 | 显示全部楼层
可以
1,开漏+打开内部上拉电阻
2,开漏+外接上拉电阻也可
3,准双向口/弱上拉+打开内部上拉电阻
4,准双向口/弱上拉+外接上拉电阻也可


用上
AiCube 图形化程序自动生成
选同一个系列的 STC32G12K128

截图202507142255253759.jpg
AiCube图形化程序自动生成【SPI,SPI-DMA,I2C,I2C-DMA】代码,驱动OLED-12864 - AiCube-ISP , 程序自动生成工具, 支持STC89/15/8H/32/AI8051U 国芯技术交流网站 - AI32位8051交流社区


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-1 01:53 , Processed in 0.136549 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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