历史上的今天

今天是:2024年09月09日(星期一)

正在发生

2019年09月09日 | STM32l151带MPU6050中断唤醒并发送数据到云平台

发布者:春林初盛 来源: eefocus关键字:STM32l151  MPU6050  中断唤醒  云平台 手机看文章 扫描二维码
随时随地手机看文章

最近在调试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

关键字:STM32l151  MPU6050  中断唤醒  云平台 引用地址:STM32l151带MPU6050中断唤醒并发送数据到云平台

上一篇:正点原子 第6讲 STM32芯片解读
下一篇:正点原子STM32F4外部中断实验

推荐阅读

  一次使用STM32F103RCT6单片机用到多个IO口时发现:不管如何配置,PB3,PB4,PA15无法正常控制输出高低电平,而其他IO口正常。其IO口初始化操作如下: GPIO_InitTypeDef GPIO_Initure; __HAL_RCC_GPIOA_CLK_ENABLE(); //开启GPIOA时钟 __HAL_RCC_GPIOB_CLK_ENABLE(); //开启GPIOB时钟 ...
得益于小型化、Bluetooth®通信和嵌入式处理方面的进步,现代助听器具有比以往更多的功能,从流媒体音乐到能够通过智能手机上的应用程序调节听力放大。 然而,要实现这些增强的功能需要付出代价:现代功能需要更多功率。功耗的增加对于设计助听器的工程师来说是一项挑战,主要是因为旧版本使用一次性锌空气电池。如图1所示,这些电池的续航能力通常约为两...
一、连接示意图 二、下载步骤1、目标板电源断开2、将仿真器下载端口与电路板JTAG端口有效连接3、启动MPLAB软件4、点击MAPLAB软件上方Programmer->Select Programmer->2 MPLAB-ICD 2 5、显示提示窗口内容:Connecting to MPLAB ICD 2...Connected,表示仿真器ICD2-USB连接成功 6、点击File->Import,打开要下载的hex文件 7、点击Programer->Pr...
STM32F0xx系列单片机基于ST官方标准库V1.5.0的ADC功能的配置ADC.c文件#include "ADC.h"uint32_t ADC1ConvertedValue = 0, ADC1ConvertedVoltage = 0;void ADC_GPIO_Configuration(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //端口配置// GPIO_StructInit(&GPIO_InitStructure); G...

史海拾趣

问答坊 | AI 解惑

激光测量仪器

第十四届中国国际激光*电子及光电显示产品展览会 展会地点:  北京*中国国际展览中心 展会时间:  2009年10月21日--2009年10月23日 主办单位:中国国际贸易促进委员会    中国国际展览中心集团公司    ...…

查看全部问答∨

硬件/嵌入开发这一块会用到c语言吗?

硬件/嵌入开发这一块会用到c语言吗?…

查看全部问答∨

用阶乘实现小灯的闪烁

程序:#include <reg52.h>sbit led=P1^0;a(char j)                    //阶乘运算{  unsigned int x,y=1; for(x=j; x>=1; x--) ...…

查看全部问答∨

电能质量补偿装置APF和SVG

                        …

查看全部问答∨

求IAR MSP430 V4.11B安装包

求IAR MSP430 V4.11B安装包  759797452@qq.com…

查看全部问答∨

晒WEBENCH设计的过程+低通滤波器电路设计

1.选择低通滤波器 2.输入滤波器参数要求 3.切夫雪比滤波器满足本次要求 4.幅频、相频特性 5.电路图 6.仿真 7.材料报表 …

查看全部问答∨

团购板子?单位行业不能为空

本帖最后由 wawaw 于 2015-1-19 16:28 编辑 好了,原来是技术没到位 …

查看全部问答∨

[庆祝EE十周年] 晒晒在EE得到的开发板

       EE相伴的这几年,从我原来不懂C2000到现在的熟练掌握(从平台搭建、选项设置、存储器分配、编译命令控制等,并基本掌握汇编指令),都是与EE的引导分不开的,特别是非常热心的管理员@soso, 提供了很大的帮助,在这里 ...…

查看全部问答∨

PCB工艺PK:喷锡VS镀金VS沉金

转自:硬件十万个为什么 今天就和大家讲讲pcb线路板沉金和镀金的区别,沉金板与镀金板是PCB电路板经常使用的工艺,许多客户都无法正确区分两者的不同,甚至有一些客户认为两者不存在差别,这是非常错误的观点,必须及时更正。那么这两种“金板”究 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved