xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

STM32F1單片機+四元數歐拉角姿態解算+MPU6050+HMC5883L+MS5611+曲線打印完整工程代碼. 燕駿編程規范: https://download.csdn.net/download/zzw5945/10397028 燕駿串口打印曲線上位機: https://download.csdn.net/download/zzw5945/10397194

資源截圖

代碼片段和文件信息

/*
***********************************************************************
*????????????????YanJunFly?V1.0?-?Copyright?(c)?2017
*?All?rights?reserved.More?information?please?browse?www.yanjuntech.cn
*??????????????????燕駿智控——以極客技術推進工程教育
*?????????????手把手教你,如何從頭開始做一個電子設計類項目。
*?我們將以?四軸飛行器?為項目載體,帶領大家進行項目式學習做出屬于自己的四旋翼。
*?
*?其他聲明:
* 對代碼中產生的bug,本人不承擔任何直接或間接的損害賠償
* 若使用本代碼即視為默認本條款。若發現bug,請將詳細信息
* 發送下面鏈接至評論區,謝謝!
* http://www.yanjuntech.cn/forum.php?gid=87
*
*?文件名稱:control.ccontrol.h
*?文件摘要:無
*
*?注意事項:
* 1、有的32型號沒有?定時器5678?如STM32F103RBT6?使用stm32cube查看
* 2、外設時鐘初始化的時候,鼠標右鍵?進底層看看時鐘函書?上面的注釋,有沒有對應好
* 如?RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1?ENABLE);
* 3、各種中斷?如果不知道,是哪個中斷名字,可以復制一下,ctrl?+?f,然后使用find?in?files
* 在文件中查找,能分方便的查出來,如已知:TIM3_IRQHandler,想查定時器1的中斷服務函數
* ctrl+f快捷鍵,彈出查找?find?in?files?,然后點擊查找結果?即可找到?TIM1_UP_IRQHandler
*
*?當前版本:v1.0
*?當前作者:YJ_朱子文
*?完成日期:2017-3-16?17:45:05
*?改動說明:創建文件
*
*?取代版本:無
*?原?作?者:YJ_朱子文
*?完成日期:2017-3-16?17:45:05
***********************************************************************
*/

#include?“./Control/control.h“

/**************************/

/*?聲明實時姿態數據?*/
CONTROL_AttitudeDataTypedef?x_AttitudeNow?=?
{
{0.0f0.0f0.0f}
{0.0f0.0f0.0f}
{0.0f0.0f0.0f}
{0.0f0.0f0.0f}
};

/*
***********************************************************************
*函數名稱:void?TIM3_IRQHandler(void)??
*函數功能:定時器3中斷服務函數
*
*使用說明:硬件自動調用
*入口參數:無
*返?回?值:無
*
*函數作者:YJ_朱子文
*創建日期:2017-3-17?09:58:14
***********************************************************************
*/

extern?float?f_AccInertiaAfterFilter;

void?TIM3_IRQHandler(void)???
{
/*?SENSOR_SensorTypedef該數據類型在sensor.h文件中?*/
static?SENSOR_SensorTypedef?x_SensorData?={0};
/*?大地坐標系(慣性坐標系)下的加速度值?這個驅動工程中沒有使用到
?實際上在IMU.C姿態解算?四元數轉歐拉角算法中?計算的數據。
?在這里定義了這個結構體變量,是因為總工程中的sensor中用到了
*/
static?CONTROL_3FloatDataTypedef?x_AccInertia?=?{0.0f};
/*?用于分頻的系數?*/
static?uint32_t?ui_Timer30Ms?=?0;
static?uint32_t?ui_Timer2Ms?=?0;

/*?判斷是否更新中斷?UIF?位是否置位?*/
if?(TIM3->SR?&?(uint32_t)(1))?
{
/*?每1ms調用一次數據讀取函數?*/
vSensorDataRead(&x_SensorData(SENSOR_3FloatDataTypedef?*)&x_AccInertia);

if(++ui_Timer2Ms?>?2)
{
ui_Timer2Ms?=?0;
/*?調用姿態解算函數?*/
vImuUpdate((IMU_AttitudeTypedef?*)&x_AttitudeNow
?(IMU_SensorTypedef?*)&x_SensorData
?(IMU_3FloatTypedef?*)&x_AccInertia);

/*?由于這里IMU是反著放的?放在了飛機背面?所以要經過計算處理才能得到真正的角度數據?*/

x_AttitudeNow.x_OriginalAngle.f_X?=?x_AttitudeNow.x_OriginalAngle.f_X;
if(x_AttitudeNow.x_OriginalAngle.f_Y?>?0.0f)
{
x_AttitudeNow.x_OriginalAngle.f_Y?=?(x_AttitudeNow.x_OriginalAngle.f_Y?-?180.0f);
}else?
{
x_AttitudeNow.x_OriginalAngle.f_Y?=?(x_AttitudeNow.x_OriginalAngle.f_Y?+?180.0f);
}

/*?減去地面起飛偏置的角度值?得到現在正確角度?*/
x_AttitudeNow.x_AngleNow.f_X?=?x_AttitudeNow.x_OriginalAngle.f_X?-?x_SensorCaliInitData.x_AngleInitData.f_X;
x

評論

共有 條評論