|
雙輪平衡小車資源分配-標準版
IO編號 資源說明 外設 備注
A12 普通IO MPU6050的INT引腳 檢測MPU6050是否產生數據就緒中斷
B8、B9 普通IO MPU6050 軟件模擬IIC的SCL與SDA
B10、B11 串口3 藍牙模塊 遙控小車
B0 TIM3_CH3 超聲波模塊 捕獲超聲波回波脈沖,計算距離
B1 普通IO 超聲波模塊 給超聲波模塊發送開始信號
A8、B15、B14 PWMA、IO 左輪電機 電機控制信號:PWM大小、電機方向
A11、B12、B13 PWMB、IO 右輪電機 電機控制信號:PWM大小、電機方向
A0、A1 TIM2_CH1、CH2 左輪編碼器 編碼器采集
B6、B7 TIM4_CH1、CH2 右輪編碼器 編碼器采集
A6 ADC1_CH6 ADC采集 電壓測量
A9、A10 串口1 MicroUSB 串口控制(單片機外設資源)
A4 普通IO LED燈
屬于單片機上的外設資源 A5 普通IO 用戶按鍵
A15、B3、B4、B5 普通IO OLED顯示屏
A13、A14 SWD下載、調試 SWD接口
閑置引腳 A2、A3、A7、B2、C13、C14、C15
部分代碼:
#include "main.h"
extern uint8_t OLED_GRAM[128][8];
int main(void)
{
NVIC_SetPriorityGrouping(5);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
SysTick_Config(72000);
LED_Config();
KEY_Config();
USART1_Config(9600);
BlueTooth_Config(9600,"sun","12345");
// BlueTooth_Config(9600,NULL,NULL);
OLED_Config();
Battery_Config();
Motor_Config();
Encoder_Config();
MPU6050_Config();
SR04_Config();
OLED_ShowString(8,0,16, "*123456*");//列 行 字體大小(12 16)
OLED_ShowPhoto(2,0,25,128,JCZN_Logo128_25);
OLED_ShowString(0,48,16, "Smart Blance Car");//列 行 字體大小(12 16)
OLED_UpdataGRAM();
Delay_nms(2000);
OLED_Clear();
NVIC_EnableIRQ(EXTI15_10_IRQn);
while(1)
{
if(Flag_Show==0)
{
Fanction_Show2APP(); //發送數據給APP
Fanction_Show2OLED(); //顯示屏打開
}
else //使用上位機 上位機使用的時候需要嚴格的時序,故此時關閉app監控部分和OLED顯示屏
{
Fanction_DataScope(); //開啟上位機
}
DelayFlag = 1;
Delay50 = 0;
while(DelayFlag); //示波器需要50ms 高精度延時,delay函數不滿足要求,故使用MPU6050中斷提供50ms延時
}
}
|
-
ba.png
(13.23 KB, 下載次數: 0)
下載附件
2024-10-10 07:41 上傳
-
-
尋跡平衡車程序.7z
2024-10-10 13:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.1 MB, 下載次數: 4, 下載積分: 黑幣 -5
|