金牌会员
 
- 积分
- 1045
- 金钱
- 1045
- 注册时间
- 2017-11-3
- 在线时间
- 716 小时
|
10金钱
本人近日在学习103平台的IIC有关部分,硬件是原子的MiNi开发板。欲将24C02的驱动引脚从例程默认的C12、C11改为PB10、PB11引脚。在结合自己的理解修改有关驱动代码后进行验证,但无法检测到24C02。外接的24C02没有问题(已将板载的24C02移除,独立的24C02模块在不修改程序的情况下通过杜邦线连接到默认引脚时也完全可以正常操作);
这个帖子,症状一致已经反复认真读过,也依照里面的细节做了检查但无果。故前来寻求帮助,还请懂得小伙伴们给一些指导。自己修改过的部分如下:
myiic.h部分:
//IO方向设置
#define SDA_IN() {GPIOB->CRH&=0XFFFFF0FF;GPIOB->CRH|=8<<8;}
#define SDA_OUT() {GPIOB->CRH&=0XFFFFF0FF;GPIOB->CRH|=3<<8;}
//IO操作函数
#define IIC_SCL PBout(11) //SCL
#define IIC_SDA PBout(10) //SDA
#define READ_SDA PBin(10) //输入SDA
myiic.c部分:
//初始化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_10|GPIO_Pin_11;
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;
}
改动后的工程见附件,还请各位高人赐教
ALIENTEK MINISTM32 实验19 IIC实验.rar
(2.53 MB, 下载次数: 48)
|
|