初级会员

- 积分
- 187
- 金钱
- 187
- 注册时间
- 2014-9-25
- 在线时间
- 23 小时
|
5金钱
使用mpu6050 与STm32的接口,任意两个通用的IO口应该是都可以的吧,到时候模拟为IIC协议传数据就可以了吧,为什么我用USART5的接口做不了呢,用原子哥给的PB10 PB11就有数据过来,哪里不对了,PC12 PD2的初始化如下:
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC,GPIO_Pin_12); //PC12
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD, ENABLE );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_SetBits(GPIOD,GPIO_Pin_2); //PD2
下面是修改的宏定义
// //IO方向设置 SDA PD2
#define SDA_IN() {GPIOD->CRL&=0XFFFFF0FF;GPIOD->CRL|=8<<8;}
#define SDA_OUT() {GPIOD->CRL&=0XFFFFF0FF;GPIOD->CRL|=3<<8;}
#define IIC_SCL   Cout(12) //SCL
#define IIC_SDA   Dout(2) //SDA
#define READ_SDA PDin(2) //输入SDA
在此强调一下,用PB10 和PB11是没有任何问题的,现在只是修改了引脚啊? 大神指点一下 |
|