|
從別的地方抄過(guò)來(lái),改動(dòng)成的自己能用的較簡(jiǎn)單程序
單片機(jī)源程序如下:
- #include "sys.h"
- /**************************************************************************
- 作者:平衡小車(chē)之家
- **************************************************************************/
- u8 Flag_Way=0,Flag_Show=0,Flag_Stop=1,Flag_Next; //停止標(biāo)志位和 顯示標(biāo)志位 默認(rèn)停止 顯示打開(kāi)
- int Encoder_Left,Encoder_Right; //左右編碼器的脈沖計(jì)數(shù)
- int Encoder_A_EXTI,Flag_Direction;
- int Encoder_Temp;
- float Velocity,Velocity_Set,Angle,Angle_Set;
- int Motor_A,Motor_B,Servo,Target_A,Target_B,tmpmotora,tmpmotorb; //電機(jī)舵機(jī)控制相關(guān)
- int Voltage; //電池電壓采樣相關(guān)的變量
- float Show_Data_Mb; //全局顯示變量,用于顯示需要查看的數(shù)據(jù)
- u8 delay_50,delay_flag; //延時(shí)變量
- float Velocity_KP=12,Velocity_KI=12; //速度控制PID參數(shù)
- int PS2_LX=128,PS2_LY=128,PS2_RX=128,PS2_RY=128,PS2_KEY; //PS2遙控相關(guān)
- u16 ADV[128]={0};
- u8 Bluetooth_Velocity=30,APP_RX; //藍(lán)牙遙控速度和APP接收的數(shù)據(jù)
- u8 CCD_Zhongzhi,CCD_Yuzhi,PID_Send,Flash_Send; //線(xiàn)性CCD FLASH相關(guān)
- int Sensor_Left,Sensor_Middle,Sensor_Right,Sensor;//電磁巡線(xiàn)相關(guān)
- u16 PID_Parameter[10],Flash_Parameter[10]; //Flash相關(guān)數(shù)組
- int main(void)
- {
- Stm32_Clock_Init(9); //=====系統(tǒng)時(shí)鐘設(shè)置
- delay_init(72); //=====延時(shí)初始化
- JTAG_Set(JTAG_SWD_DISABLE); //=====關(guān)閉JTAG接口
- // KEY_Init(); //=====按鍵初始化
- OLED_Init(); //=====OLED初始化
- // oled_show_once();
- LED_Init(); //=====初始化與 LED 連接的硬件接?
-
- Encoder_Init_TIM2(); //=====編碼器接口
- Encoder_Init_TIM3(); //=====初始化編碼器
- EXTI_Init(); //=====外部中斷
- // while(select()) { } //=====選擇運(yùn)行模式
- Adc_Init(); //=====電池電壓采樣adc初始化
- Servo_PWM_Init(9999,71); //=====初始化PWM50HZ驅(qū)動(dòng) 舵機(jī)
- delay_ms(300); //=====延時(shí)啟動(dòng)
- // uart_init(72,128000); //=====初始化串口1
- Motor_PWM_Init(7199,0); //=====初始化PWM 10KHZ,用于驅(qū)動(dòng)電機(jī)
- // uart3_init(36,9600); //=====串口3初始化 藍(lán)牙
- // if(Flag_Way==1)
- // {
- // PS2_Init(); //=====PS2手柄初始化
- // PS2_SetInit(); //=====ps2配置初始化,配置“紅綠燈模式”,并選擇是否可以修改
- // }s
- // else if(Flag_Way==2)ccd_Init(); //=====CCD初始化
- // else if(Flag_Way==3)ele_Init(); //=====電磁傳感器初始化
- ccd_Init(); //=====CCD初始化
- Flash_Read(); //=====讀取PID參數(shù)
- // oled_show_once();
- while(1)
- {
- // if(Flag_Way==1)
- // {
- // PS2_LX=PS2_AnologData(PSS_LX); //PS2數(shù)據(jù)采集
- // PS2_LY=PS2_AnologData(PSS_LY);
- // PS2_RX=PS2_AnologData(PSS_RX);
- // PS2_RY=PS2_AnologData(PSS_RY);
- // PS2_KEY=PS2_DataKey();
- // }
- // if(Flash_Send==1) //寫(xiě)入PID參數(shù)到Flash,由app控制該指令
- // {
- // Flash_Write();
- // Flash_Send=0;
- // }
- // if(Flag_Show==0) //使用MiniBalance APP和OLED顯示屏
- // {
- // APP_Show();
- oled_show(); //===顯示屏打開(kāi)
- // }
- // else //使用MiniBalance上位機(jī) 上位機(jī)使用的時(shí)候需要嚴(yán)格的時(shí)序,故此時(shí)關(guān)閉app監(jiān)控部分和OLED顯示屏
- // {
- // DataScope(); //開(kāi)啟MiniBalance上位機(jī)
- // }
- delay_flag=1;
- delay_50=0;
- while(delay_flag); //通過(guò)定時(shí)中斷實(shí)現(xiàn)的50ms精準(zhǔn)延時(shí)
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
循跡小車(chē).rar
(235.01 KB, 下載次數(shù): 11)
2018-10-15 17:05 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|