OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2760|回复: 6

stm32f103c8t6移植战舰IIC不能读写,请原子哥帮忙看一下是哪里的问题

[复制链接]

16

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2019-9-1
在线时间
61 小时
发表于 2020-6-26 17:23:29 | 显示全部楼层 |阅读模式
1金钱
原子哥,我用的stm32f103c8t6芯片,使用战舰程序里的IIC实验程序,更改端口到,PB10,PB11,两个引脚,不能读写24c02里的数据,请原子哥看看是哪里出了问题,其他部分没有改动,主程序里,只有,读出,自加,写入,打印,printf出来的数据就是不变,找不到哪里出的问题,

//初始化
void IIC_Init(void)
{                                             
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(        RCC_APB2Periph_GPIOB, ENABLE );        //
          
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        GPIO_SetBits(GPIOB,GPIO_Pin_10|GPIO_Pin_11);         //
}

//IO方向设置

#define SDA_IN()  {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=(u32)8<<12;}//
#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=(u32)3<<12;}//


//IO操作函数
#define IIC_SCL    PBout(10) //SCL
#define IIC_SDA    PBout(11) //SDA         
#define READ_SDA   PBin(11)  //ê&#228;è&#235;SDA


int main(void)
{         
        u16 i=8;
        delay_init();                     //&#209;óê±oˉêy3&#245;ê&#188;&#187;ˉ          
        uart_init(115200);                 //′&#174;&#191;ú3&#245;ê&#188;&#187;ˉ&#206;a115200
        LED_Init();                                  //3&#245;ê&#188;&#187;ˉó&#235;LEDá&#172;&#189;óμ&#196;ó2&#188;t&#189;ó&#191;ú                                 
        AT24CXX_Init();                        //IIC3&#245;ê&#188;&#187;ˉ
//         while(AT24CXX_Check())//24c02检测
//        {
//                delay_ms(500);
//                LED0=!LED0;//DS0éá&#203;&#184;
//        }

        while(1)
        {
                delay_ms(1);
                LED0=!LED0;//DS0éá&#203;&#184;
               i=AT24CXX_ReadOneByte(1);
                i++;
                AT24CXX_WriteOneByte(1,i);
                printf("i=%d, \n", i);               
        }
}





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2019-9-1
在线时间
61 小时
 楼主| 发表于 2020-6-26 17:25:56 | 显示全部楼层
论坛里有一个朋友也是这个问题,也参考他的改的,也是不行
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-6-26 17:58:00 | 显示全部楼层
看看硬件电路是不是有问题,对着芯片手册慢慢捋一捋时序
回复

使用道具 举报

16

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2019-9-1
在线时间
61 小时
 楼主| 发表于 2020-6-26 19:23:29 | 显示全部楼层
三叶草 发表于 2020-6-26 17:58
看看硬件电路是不是有问题,对着芯片手册慢慢捋一捋时序

硬件也应该没有问题,多个板子都试了,程序里和硬件地址都是默认的,逻辑分析测试,也有信号,就是分析我分析不透,有信号应该硬件没有问题
回复

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2013-5-10
在线时间
22 小时
发表于 2020-6-30 10:03:56 | 显示全部楼层
兄弟,你前面的测试24C02为什么要屏蔽掉呢?可以通过吗?   我想也不行吧!      我用原板的战舰板用原例程试过也是不能通过的。 我的板子什么都不动也是PB6/PB7,程序也是原例程测试也不能通过的。 不知道为什么视频中就可以过了!我都不知道怎么办了。
回复

使用道具 举报

11

主题

2153

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4938
金钱
4938
注册时间
2015-1-10
在线时间
619 小时
发表于 2020-6-30 13:35:49 | 显示全部楼层
SCL和SDA时序是否正确,首先写地址以后SDA是否被拉高,我已经不用软件模拟I2C了,硬件I2C用着也没什么问题
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-7-1 01:42:24 | 显示全部楼层
可以试试用示波器看看SDA,SCL波形
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 16:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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