OpenEdv-开源电子网

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

一个关于I2C的问题

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2013-5-6
在线时间
0 小时
发表于 2013-5-6 11:24:27 | 显示全部楼层 |阅读模式
为什么我在使用了库函数RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C2, ENABLE);运行之后,寄存器SR2 的busy=1了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-6 17:58:05 | 显示全部楼层
建议你还是不要用硬件IIC的好,尽早放弃。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-5-7
在线时间
0 小时
发表于 2013-5-7 08:38:17 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
昨天没注册同事帮忙发帖求助的,
这个不是我说不用就不用的,公司的项目硬件电路都设计好了不能说不用就不用吧。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-7 10:17:24 | 显示全部楼层
模拟IO照样用。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-5-7
在线时间
0 小时
发表于 2013-5-7 11:11:57 | 显示全部楼层
void I2C_Init(void)
{
GPIO_InitTypeDef  GPIO_InitStructure;
I2C_InitTypeDef   I2C_InitStructure;
NVIC_InitTypeDef  NVIC_InitStructure;

// init clock
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C2, ENABLE); 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

////PIN FUNC SET/////
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_10|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
GPIO_Init(GPIOB, &GPIO_InitStructure);

I2C_DeInit(I2C2);

// i2c setting
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
I2C_InitStructure.I2C_OwnAddress1 = 0x30;
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C_InitStructure.I2C_ClockSpeed = 20000;
I2C_Init(I2C2, &I2C_InitStructure);

I2C_Cmd(I2C2, ENABLE);

//nvic setting
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

NVIC_InitStructure.NVIC_IRQChannel = I2C2_EV_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

I2C_ITConfig(I2C2, I2C_IT_EVT | I2C_IT_BUF, ENABLE); 
}
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-5-7
在线时间
0 小时
发表于 2013-5-7 11:12:35 | 显示全部楼层
回复【5楼】tangxiujuan:

void I2C_Init(void)
{
GPIO_InitTypeDef  GPIO_InitStructure;
I2C_InitTypeDef   I2C_InitStructure;
NVIC_InitTypeDef  NVIC_InitStructure;
// init clock
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C2, ENABLE); 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

////PIN FUNC SET/////
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_10|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_5
......
---------------------------------
高手帮忙看下初始化有没有问题
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-21 15:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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