欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
恒拓飛控源碼加詳細(xì)注釋 stm32+mpu6050
[打印本頁]
作者:
1342853999
時(shí)間:
2017-2-28 12:01
標(biāo)題:
恒拓飛控源碼加詳細(xì)注釋 stm32+mpu6050
恒拓飛控源碼 stm32+mpu6050
0.png
(63.55 KB, 下載次數(shù): 117)
下載附件
2017-2-28 23:14 上傳
完整的程序源碼下載:
HT-Hawk飛控源代碼.zip
(1.1 MB, 下載次數(shù): 245)
2017-2-28 12:00 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
下面提供部分程序來預(yù)覽:
飛控的主程序:
/*
******************* (C) COPYRIGHT 2015 Air Nano Team ***************************
* 模塊名稱 : 主程序模塊
* 文件名 :main.c
* 描述 :系統(tǒng)初始化
* 實(shí)驗(yàn)平臺(tái) :HT_Hawk
* 庫版本 :ST3.5.0
* 作者 :Air Nano Team
*********************************************************************************
*/
#include "board_config.h"
/*
*********************************************************************************************************
* 函 數(shù) 名: main
* 功能說明: c程序入口
* 形 參:無
* 返 回 值: 錯(cuò)誤代碼(無需處理)
*********************************************************************************************************
*/
int main(void)
{
// boot_loader 相關(guān)配置
Bootloader_Set(); //單片機(jī)引導(dǎo)程序
// 硬件初始化
InitBoard();
// 傳感器初始化
Sensor_Init();
// 加載參數(shù)
paramLoad();
/* 開定時(shí)中斷 */
EnTIMER;
while(1)
{
loop(); //主函數(shù)循環(huán)執(zhí)行部分 與上位機(jī)通訊 刷新OLED屏 保存修改的PID數(shù)據(jù)
}
}
復(fù)制代碼
MultiRotor_app.c
/******************** (C) COPYRIGHT 2014 Air Nano Team ***************************
* 文件名 :INIT.c
* 描述 :系統(tǒng)初始化
* 實(shí)驗(yàn)平臺(tái):HT_Hawk
* 庫版本 :ST3.5.0
* 作者 :Air Nano Team
**********************************************************************************/
#include "include.h"
#include "MultiRotor_app.h"
fp32 Battery_Voltage;
Flag_t flag; //【標(biāo)志的結(jié)構(gòu)體定義】 此處可以分開定義
////*************************************************
////********* struct {
//// u8 MpuExist; // MPU存在
//// u8 MagExist; // MAG存在
//// u8 NrfExist; // NRF存在
//// u8 MagIssue; // MAG有問題
////
//// u8 ARMED; // 電機(jī)解鎖
//// u8 LockYaw; // 航向鎖定
//// u8 calibratingA; // 加速度采集
//// u8 calibratingM; // 磁力計(jì)采集
//// u8 calibratingM_pre; //磁力計(jì)預(yù)采集
////
//// u8 ParamSave; // 參數(shù)保存標(biāo)志
////
//// u8 Loop_250Hz;
//// u8 Loop_100Hz;
//// u8 Loop_10Hz;
////********* }Flag_t;
////************************************************
/*====================================================================================================*/
/*====================================================================================================*
**函數(shù) : Bootloader_Set
**功能 : BOOT相關(guān)設(shè)置
**輸入 : None
**輸出 : None
**備注 : None
**====================================================================================================*/
/*====================================================================================================*/
void Bootloader_Set(void)
{
u16 i;
// 設(shè)置偏移量
SCB->VTOR = FLASH_BASE | FLASH_EXCURSION ;
i=0x0505;
STMFLASH_Write(pro_FALG_ADD,&i,1);
}
/*====================================================================================================*/
/*====================================================================================================*
**函數(shù) : Sensor_Init
**功能 : ===============================【硬件初始化】===============================================//
**輸入 : None
**輸出 : None
**備注 : None
**====================================================================================================*/
/*====================================================================================================*/
void InitBoard(void)
{
delay_init(72); //延時(shí)函數(shù)初始化 使用SYSCLK 分為 【ms級(jí)延時(shí) us級(jí)延時(shí) 普通軟件延時(shí)】
Nvic_Init(); //中斷初始化 time.c中 配置 【TIM5-系統(tǒng)時(shí)基 TIM2 TIM3輸入捕捉 提供八通道】
/* 初始化USB設(shè)備 */
bsp_InitUsb(); //與上位機(jī)通訊使用
ADC1_Init();
OLED_Init();
I2C_INIT();
LED_GPIO_Config();
USART1_Config();
TIM5_Config(); //TIM5 2ms中斷一次 提供系統(tǒng)時(shí)基
PWM_OUT_Config(); //PWM輸出控制無刷電機(jī) 【TIM1 TIM4 提供八路PWM輸出】
PWM_IN_Config(); //PWM輸入捕捉初始化 使用TIM2輸入捕捉
NRF24L01_Init();
LED_SHOW();
FLASH_Unlock();
EE_Init(); //EEPROM掉電保存數(shù)據(jù)
}
/*====================================================================================================*/
/*====================================================================================================*
**函數(shù) : Sensor_Init
**功能 : ================================【傳感器初始化】============================================//
**輸入 : None
**輸出 : None
**備注 : None
**====================================================================================================*/
/*====================================================================================================*/
void Sensor_Init(void)
{
flag.MpuExist = InitMPU6050(); //讀取初始化成功標(biāo)志
flag.MagExist = Init_HMC5883L(); //傳感器初始化成功 傳感器存在的標(biāo)志
flag.NrfExist = NRF24L01_Check();
NRF24L01_Mode(1); //設(shè)置24l01為發(fā)送模式
OLED_P6x8Str(0,1,"ROLL:"); //OLED顯示三個(gè)姿態(tài)歐拉角數(shù)值
OLED_P6x8Str(0,2,"PITCH:");
OLED_P6x8Str(0,3,"YAW:");
OLED_P6x8Str(0,5,"YAW:"); //四個(gè)遙控器通道數(shù)據(jù)
OLED_P6x8Str(0,6,"THR:");
OLED_P6x8Str(56,5,"ROLL:");
OLED_P6x8Str(56,6,"PITCH:");
}
/*====================================================================================================*/
/*====================================================================================================*
**函數(shù) : Screen_Update
**功能 : 屏幕數(shù)據(jù)更新
**輸入 : None
**輸出 : None
**備注 : None
**====================================================================================================*/
/*====================================================================================================*/
void Screen_Update(void)
{
Dis_Float(1,40,AngE.Roll,1);
Dis_Float(2,40,AngE.Pitch,1);
Dis_Float(3,40,AngE.Yaw,1);
OLED_4num(4,5,RC_Data.YAW);
OLED_4num(4,6,RC_Data.THROTTLE);
OLED_4num(57,5,RC_Data.ROLL);
OLED_4num(58,6,RC_Data.PITCH);
}
//***********************************【劃分時(shí)間片,分配任務(wù)】******************************************//
//======================================【主循環(huán)執(zhí)行函數(shù)】============================================//
void loop(void)
{ //姿態(tài)解算 串級(jí)PID控制 在中斷函數(shù)中執(zhí)行 每2ms執(zhí)行一次
// 250HZ
if(flag.Loop_250Hz){
flag.Loop_250Hz=0;
UsbCmdPro(); //USB接收上位機(jī)數(shù)據(jù) 【4ms執(zhí)行一次】
FailSafeLEDAlarm(); //閃爍燈
}
// 100HZ
if(flag.Loop_100Hz){
flag.Loop_100Hz=0;
mavlink(); //飛控板循環(huán)發(fā)送數(shù)據(jù)到上位機(jī) 【10ms執(zhí)行一次】
Screen_Update(); //更新OLED三個(gè)歐拉角和四個(gè)通道遙控器數(shù)據(jù)
}
if(flag.Loop_10Hz){
flag.Loop_10Hz=0;
EE_SAVE_Attitude_PID(); //如果調(diào)節(jié)了PID參數(shù)則用EEPROM保存數(shù)據(jù) 【100ms執(zhí)行一次】
}
}
/*====================================================================================================*/
/*====================================================================================================*
**函數(shù) : Time_slice
**功能 :【時(shí)間片】
**輸入 : None
**輸出 : None
**備注 : None
**====================================================================================================*/
/*====================================================================================================*/
void Time_slice(void) //每中斷一次執(zhí)行一次本函數(shù)
{
static u16 tick[3]={0,0,0};
tick[0]++;tick[1]++;tick[2]++;
if(tick[0]>=2){ //4ms 2次中斷 一次2ms
tick[0] = 0;
flag.Loop_250Hz = 1;
}
if(tick[1]>=5){ //10ms 5次
tick[1] = 0;
flag.Loop_100Hz = 1;
}
if(tick[2] >= 50) { //100ms 50次
tick[2] = 0;
flag.Loop_10Hz = 1;
}
}
復(fù)制代碼
作者:
wecilau
時(shí)間:
2017-3-8 10:13
哇哇哇,大愛樓主的分享
作者:
zhaoweias
時(shí)間:
2017-5-13 17:05
正在做這方面的東西看著還挺好的
作者:
阿斯頓馬丁
時(shí)間:
2017-8-2 22:58
挺好,贊
作者:
anyegongjue2
時(shí)間:
2017-10-24 18:45
特別好,贊
作者:
mumu清
時(shí)間:
2017-11-24 15:25
有幫助
作者:
lzw1898
時(shí)間:
2017-12-12 11:58
感謝分享
作者:
家家家116127
時(shí)間:
2017-12-18 11:02
謝謝大佬
作者:
abcqq
時(shí)間:
2018-5-14 16:08
謝謝樓主的分享
作者:
plyl
時(shí)間:
2018-5-20 23:05
用stm32f4系列做的嗎
作者:
dukecheng
時(shí)間:
2018-5-23 16:18
謝謝,真的不錯(cuò)
作者:
不多不少
時(shí)間:
2018-7-31 14:04
樓主大愛
作者:
2316
時(shí)間:
2018-7-31 20:25
是STM32F103的嗎,我需要f103的代碼
作者:
胡狼
時(shí)間:
2018-9-11 23:49
感謝樓主分享
作者:
a2569808500
時(shí)間:
2018-12-29 21:32
有原理圖嗎,真心求
作者:
zgf123456
時(shí)間:
2019-3-29 16:56
最近在找這方面的資料 下載看一下
作者:
韜略
時(shí)間:
2019-4-1 20:30
很需要?jiǎng)倓偤媚嗡?hr noshade size="2" width="100%" color="#808080">
作者:
luckylili
時(shí)間:
2019-4-23 10:46
太給力了。
作者:
cduhuapu
時(shí)間:
2019-9-9 16:25
謝謝!非常好的代碼,代碼非常完整!!ok!待會(huì)再看代碼
作者:
Flyyyy
時(shí)間:
2019-9-17 23:18
感謝樓主分享
作者:
xinfan
時(shí)間:
2019-9-23 12:03
感謝分享
作者:
baplin
時(shí)間:
2019-9-29 11:52
一直想找飛控系統(tǒng),終于找到了,大愛
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1