OpenEdv-开源电子网

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

新手IIC 无法存取问题

[复制链接]

2

主题

3

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-2-10
在线时间
1 小时
发表于 2015-2-10 17:23:30 | 显示全部楼层 |阅读模式
5金钱
小弟使用的板芯片是stm32f103ct6
PB6=SCL
PB7=SDA



例程应该如何改:
//IO方向设置
#define SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}
#define SDA_OUT() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=3<<12;}

//IO操作函数  
#define IIC_SCL    Cout(12) //SCL
#define IIC_SDA    Cout(11) //SDA  
#define READ_SDA   PCin(11)  //输入SDA 


///////////////////////////////
void IIC_Init(void)
{     
GPIO_InitTypeDef GPIO_InitStructure;
//RCC->APB2ENR|=1<<4;//先使能外设IO PORTC时钟 
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
  
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
 
IIC_SCL=1;
IIC_SDA=1;

}

我自己改了一下.还是没通过........如下:
//IO方向设置
#define SDA_IN()  {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}
#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}

//IO操作函数  
#define IIC_SCL    Bout(6) //SCL
#define IIC_SDA    Bout(7) //SDA  
#define READ_SDA   PBin(7)  //输入SDA 

//////////////////////////////////////////////////////////////
//初始化IIC
void IIC_Init(void)
{     
GPIO_InitTypeDef GPIO_InitStructure;
//RCC->APB2ENR|=1<<4;//先使能外设IO PORTC时钟 
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );
  
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
 
IIC_SCL=1;
IIC_SDA=1;

}



求大神指点一二........................

最佳答案

查看完整内容[请看2#楼]

#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=8<<28;} #define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=3<<28;}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-2-10 17:23:31 | 显示全部楼层
#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=3<<28;}
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11558
金钱
11558
注册时间
2014-4-1
在线时间
1318 小时
发表于 2015-2-10 20:31:20 | 显示全部楼层
接示波器观察,和正确波形做对比,就能找到问题。
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-2-10
在线时间
1 小时
 楼主| 发表于 2015-2-11 02:15:09 | 显示全部楼层
回复【3楼】lycreturn:
---------------------------------
3Q.问题解决
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 20:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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