野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11361|回复: 6

开源平衡车MPU6050中断引脚PD2与PA2串扰问题

[复制链接]
发表于 2016-10-10 15:29:43 | 显示全部楼层 |阅读模式
本帖最后由 jiwangbujiu 于 2016-10-10 15:31 编辑

首先感谢野火团队对开源平衡车的赞助,以及各位大神的设计,让我们顺利完成了这款平衡车的硬件设计,并在张工的调试之后,下发到参与项目的人手中。帖子下面是车的玉照


我在拿到这个车之后的一段时间里,由于在忙其他的事情,所以并没有来得及编程,前几天抽出时间开始码这个车的程序,在过程中遇到了以下几个问题:
1、硬件IIC读取陀螺仪数据时,卡在读写时序里,经张工指导,问题出在MPU6050的地址上,地址应该设置为0XD0;
2、使用MPU6050的中断引脚发送数据ready中断到STM32的PD0,并进行数据读取时,发现数据无法读取,后来无意用手摸了一下开发板,发现突然有数据了,进而发现用手摸PA2的时候,会有数据。也就是用手触摸PA2时,会触发PD2的中断,一开始怀疑是用手摸的时候相当于给PA2一个接地电平,后来用导线一段连接地,一段触碰PA2时发现并不是接地的问题。当手靠近板子上预留的PA2插针插孔或者直接抚摸STM32芯片背面(并没有直接接触)也会产生中断,这个问题截止发帖并没有解决,下面是我配置PD2外部中断的函数:

void MPU6050_EXTI_Config(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
EXTI_InitTypeDef EXTI_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOD, &GPIO_InitStruct);

GPIO_SetBits(GPIOD, GPIO_Pin_2);


EXTI_InitStruct.EXTI_Line = EXTI_Line2;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStruct.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStruct);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource2);

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStruct.NVIC_IRQChannel = EXTI2_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStruct);

}


PA2并没有初始化,所以这个奇怪的问题我已经无力解决,希望各位大神能提出自己的猜想








IMG_1995.JPG
IMG_2083.PNG
IMG_2084.PNG
IMG_2085.PNG
IMG_2380.JPG
IMG_2381.JPG
IMG_2478.JPG
IMG_2479.JPG
IMG_2480.JPG
IMG_2481.JPG
IMG_2482.JPG
IMG_2483.JPG
IMG_2498.JPG
IMG_2499.JPG

整车

整车
IMG_2515.JPG
IMG_2516.JPG
IMG_2517.JPG
IMG_2674.JPG
IMG_2935.JPG
回复

使用道具 举报

 楼主| 发表于 2016-10-10 16:03:16 | 显示全部楼层
没人遇到同样的问题吗
回复 支持 反对

使用道具 举报

发表于 2016-10-10 17:52:10 | 显示全部楼层
改用软件iic试下
回复 支持 反对

使用道具 举报

发表于 2016-10-10 19:00:26 来自手机 | 显示全部楼层
我遇到类似的问题,用手摸就有数据,最终是因为虚焊,重新焊接就好了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-19 22:54:35 | 显示全部楼层
随风 发表于 2016-10-10 17:52
改用软件iic试下

软件iic没问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-19 22:55:00 | 显示全部楼层
东来东往 发表于 2016-10-10 19:00
我遇到类似的问题,用手摸就有数据,最终是因为虚焊,重新焊接就好了。

什么位置虚焊?你是用手摸什么地方就好了?
回复 支持 反对

使用道具 举报

发表于 2016-10-20 09:12:14 | 显示全部楼层
jiwangbujiu 发表于 2016-10-19 22:55
什么位置虚焊?你是用手摸什么地方就好了?

MPU6050  虚焊
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 16:29 , Processed in 0.042712 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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