@原子哥我修改的寄存器,不知道有没有错,也不知道用不用修改其他的程序。
"mpuiic.h"头文件
#define MPU_SDA_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=8<<28;}
#define MPU_SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=3<<28;}
//IO2ù×÷oˉêy
#define MPU_IIC_SCL PBout(6) //SCL
#define MPU_IIC_SDA PBout(7) //SDA
#define MPU_READ_SDA PBin(7) //êäèëSDA
c文件
void MPU_IIC_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//Ïèê1ÄüíaéèIO PORTCê±Öó
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; // ¶Ë¿úÅäÖÃ
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //íÆíìêä3ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿úËù¶èÎa50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //¸ù¾Yé趨2Îêy3õê¼»ˉGPIO
GPIO_SetBits(GPIOB,GPIO_Pin_6|GPIO_Pin_7); //PB10,PB11 êä3ö¸ß
我只是想得到步数和时间,main函数如下。
int main(void)
{
unsigned long step_count,walk_time;
NVIC_Configuration(); //éèÖÃNVICÖD¶Ï·Ö×é2:2λÇàÕ¼óÅÏ輶£¬2λÏìó|óÅÏ輶 LED_Init(); //LED¶Ë¿ú3õê¼»ˉ
OLED_Init(); //3õê¼»ˉOLED
OLED_Clear() ;
delay_init();
MPU_Init(); //3õê¼»ˉMPU6050
mpu_dmp_init();
while(1)
{
//t=5;
OLED_Clear();
LED_ON;
dmp_get_pedometer_step_count(&step_count);
dmp_get_pedometer_walk_time(&walk_time);
OLED_ShowNum(0,0,step_count,3,16);
OLED_ShowNum(0,2,walk_time,7,16);
delay_ms(1000);
}
}
求大神解答!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
示波器看SDA,SCL波形
一周热门 更多>