最近在调试STM32L151带mpu6050的中断唤醒的项目,下面写一下项目经历:
1.首先贴出我的主函数
int main(void)
{
SystemInit();
delay_init(72); //初始化延时函数
MY_GPIO_AN();//全部 模拟输入
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
Base_TIM6_Init();
uart_init(115200); //初始化串口波特率为115200
SYS_RTCInit(60*5); //12h*/
RTC_WakeUpCmd(DISABLE);
ADC_SX_DMA_Config(); //初始化 四项电压采集 A 046
GPIO_Setup(); //开机和电源引脚
LS_A9500_PWL;
LS_A9500_KEYL;
GpioState1 = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8);
C_Get_State();
// MPU_Init_agin();
while(1)
{
if((RTC_flag==1)||QD_Wakeup_Flag==1||first_flag==1)
{
uart_init(115200); //初始化串口波特率为115200
delay_ms(26);
GPIO_Setup();//9500开关
LS_A9500_PWL;
LS_A9500_KEYL;
if(Turn_ON_A9500())
{
int m=0;
if(gprs_init())
{
MPUAGAIN:
m++;
MPU_Init_agin();
for(i=0;i<10;i++)
{
if(m>10)
break;
MPU_Get_Accelerometer(&aacx,&aacy,&aacz); //得到加速度传感器数据
MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz); //得到陀螺仪数据
// imuUpdate(aacx, aacy, aacz, gyrox, gyroy, gyroz,x3, y3, z3,&quaNow);//姿态解算结果
lmd=32767/2; //计算 加速度计灵敏度
ax=aacx/lmd; //x轴加速度
ay=aacy/lmd;
az=aacz/lmd;
pr=-aacx/sqrt(aacz*aacz+aacy*aacy);
rr=aacy/sqrt(aacz*aacz+aacx*aacx);
pitch=((atan(pr)*180)/3.1415926); //俯仰角
roll=((atan(rr)*180)/3.1415926);//横滚角
if(pitch==0||roll==0)
goto MPUAGAIN;
else break;
}
a = pitch*100;
c = roll*100;
b =(int)a;
if(b<0)
b=abs(b);
d=(int)c;
if(d<0)
d=abs(d);
USART0_TX_Buffer[18]=b>>8; //将b转化为16进制 并放在数组的28 、29两个字节内
USART0_TX_Buffer[19]=b;
USART0_TX_Buffer[20]=d>>8;
USART0_TX_Buffer[21]=d;
C_Get_State();
if(RTC_flag==1)
for(i=0;i<1;i++)
{
{
//free_UART0_Recv_Buffer();//清除串口2接收
Send_to_Server();//上传数据到云平台
//free_UART0_Recv_Buffer();
}
}
if(first_flag==1)
{
for(i=0;i<1;i++)
{
Send_to_Server();//上传数据到云平台
}
}
if(QD_Wakeup_Flag==1)
{
for(i=0;i<1;i++)
{
Send_to_Server();//上传数据到云平台
}
}
} // if(gprs_init())
}//if(Turn_ON_A9500())
RTC_flag=0;
QD_Wakeup_Flag=0;
first_flag=0;
}//if(RTC_flag==1|First_flag==1)
else if((0 == QD_Wakeup_Flag)&&(0 == RTC_flag)&&(0==first_flag)){
delay_init(72); //初始化延时函数
MPU_Init();//mpu6050低功耗初始化
Turn_OFF_A9500();
mpu6050int_init();//外部中断初始化
RCC_Enter_Stop();//进入低功耗
Delay_ms(1000);
}
}//大while
}//main
上一篇:正点原子 第6讲 STM32芯片解读
下一篇:正点原子STM32F4外部中断实验
推荐阅读
史海拾趣
除了自主研发外,eMemory还积极寻求与外部合作伙伴的联合研发。在2016年,eMemory与马来西亚的半导体晶圆代工厂Silterra联合宣布,基于Silterra 0.18微米CMOS制程技术的一次性可编程(OTP)存储器已经通过了验证。这一合作不仅证明了eMemory技术的先进性和可靠性,还为双方带来了新的市场机遇。
Daco Semiconductor在成立之初就专注于半导体技术的研发与创新。公司由一群对半导体行业充满热情的工程师创立,他们致力于开发更高效、更稳定的半导体产品。一次偶然的实验中,Daco的研发团队发现了一种新型的材料组合,这种材料组合能够显著提高半导体的性能和稳定性。这一技术突破成为了Daco的核心竞争力,也为其在竞争激烈的半导体市场中打开了新的局面。
在发展过程中,如韵始终关注社会责任和可持续发展问题。公司积极参与社会公益活动,为弱势群体提供帮助和支持。同时,如韵注重环保和节能减排工作,在产品设计和生产过程中严格遵守相关环保法规和标准。
为了推动行业的可持续发展,如韵还积极参与行业交流和合作活动,与同行分享经验和资源。通过与产业链上下游企业的紧密合作和协同创新,如韵为推动电子行业的绿色发展和技术进步做出了积极贡献。
在国内市场取得一定成绩后,如韵开始将目光投向海外市场。为了拓展国际业务,公司在香港设立了研发中心,以便更好地了解国际市场需求和技术趋势。同时,如韵积极参加国际电子展会和交流活动,与多家国际知名企业建立了合作关系。
经过一段时间的努力,如韵的产品逐渐在海外市场上获得了认可。公司的出口额逐年增长,为如韵带来了更多的发展机遇。海外市场的成功拓展,不仅提升了公司的品牌影响力,也为公司带来了更多的国际合作机会。
随着市场的不断拓展和技术的不断进步,GAIA盖亚电源持续加大研发投入,致力于技术创新和产品升级。公司拥有一支由超过300名工程师组成的研发团队,他们紧密关注行业动态,积极应对新技术和市场趋势。每年,GAIA盖亚电源都会推出数百种新产品,以满足不同客户的需求。这些新产品不仅涵盖了更广泛的电压范围和输出功率,还集成了最新的滤波、网络调节等先进技术,进一步提升了产品的性能和可靠性。
作为一家有远见的企业,DEMMELPRODUCTS公司始终关注环保和社会责任。公司积极推广绿色生产理念和技术,减少生产过程中的废弃物排放和能源消耗。同时,公司还积极参与社会公益活动,为社会做出了积极的贡献。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。
程序:#include <reg52.h>sbit led=P1^0;a(char j) //阶乘运算{ unsigned int x,y=1; for(x=j; x>=1; x--) ...… 查看全部问答∨ |
|
EE相伴的这几年,从我原来不懂C2000到现在的熟练掌握(从平台搭建、选项设置、存储器分配、编译命令控制等,并基本掌握汇编指令),都是与EE的引导分不开的,特别是非常热心的管理员@soso, 提供了很大的帮助,在这里 ...… 查看全部问答∨ |
转自:硬件十万个为什么 今天就和大家讲讲pcb线路板沉金和镀金的区别,沉金板与镀金板是PCB电路板经常使用的工艺,许多客户都无法正确区分两者的不同,甚至有一些客户认为两者不存在差别,这是非常错误的观点,必须及时更正。那么这两种“金板”究 ...… 查看全部问答∨ |