2021-10-26 19:44:22 索煒達電子 1099
項目編號:E1832
文件大?。?.9M
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡要概述
學習使用,某米掃地機器人STM32代碼; 程序驅動包含I2C、PWM、SPI、多路ADC與DMA、編碼器輸入捕獲、外部中斷、通信協(xié)議、IAP升級、PID、freertos操作系統(tǒng)等 代碼注釋清晰、代碼規(guī)范 stm32f103ev工程 硬件驅動包括陀螺儀姿態(tài)bmi160、電源管理bq24773等
************************************************** 文件夾說明 *************************************************
USER文件夾 main函數(shù)
SYSTEM文件夾 必要的延時函數(shù) 調試串口 源文件初始化
HARDWARE文件夾 硬件初始化源文件
application_Robot 機器人行為相關的文件
application_Share 機器人共享相關的文件(一般為算法)
application_Motor 機器人電機應用相關文件
application_Key 機器人按鍵應用相關文件
application_Led 機器人LED應用相關文件
application_Led 機器人adc獲取與處理應用相關文件
application_PowerChip 機器人電池管理芯片與充電應用相關文件
application_Bmi160 機器人BMI160 陀螺儀芯片 應用相關文件
application_Drop 機器人掉落傳感器應用相關文件
application_UltraSonic 機器人超聲波傳感器應用相關文件
application_GarBox 機器人垃圾盒應用相關文件
CORE文件夾 STM32啟動文件 和內核函數(shù)文件
FWLIB文件夾 STM32庫文件
FreeRTOS_CORE
FreeRTOS 文件夾 freertos內核函數(shù)
Usmart文件夾 usmart調試函數(shù)源碼
testfunction文件夾 測試函數(shù)
readme 說明文檔
************************************************** 硬件連接說明 *************************************************
一、普通IO輸出
PE6 - 電源控制IO 高電平關機
PE2 - 風機電源控制IO 高電平使能
PE8 - VA+電源控制IO 高電平使能
PC8 - VCC+電源控制IO 高電平使能
PA11 - V+電源控制IO 高電平使能
PC6 - 超聲波發(fā)送IO 高電平使能
PC12 - 邊刷控制引腳 1 正轉
PA8 - 滾刷控制引腳 0 正轉
PE4 - 右輪控制引腳 0 正轉
PE7 - 左輪控制引腳 0 正轉
4選1模擬adc通道控制引腳
PD9
PD11
二、PWM輸出IO
PB3 - LED_CTL2 - RI1 RI10 RI4 RI17 (紅燈) TIM2 CHANNEL2 都是高電平點亮
PB10 - LED_CTL - RI2 RI11 RI5 RI18 (白燈) TIM2 CHANNEL3
PB11 - LED_CTL1 - RI3 RI12 RI6 RI19 (黃燈) TIM2 CHANNEL4
PA1 - 風機控制IO TIM5_CH2高電平全速
PB0 -TIM3_CH3 右輪 占空比越少 越快
PB1 -TIM3_CH4 左輪
PD13 -TIM4_CH2 滾刷 占空比越大 越快
PD14 -TIM4_CH3 邊刷
PD15 -TIM4_CH4 防跌落
三、普通輸入IO
PB4 - KEYI2 (電平0為按下)
PD7 - KEYI1 (電平0為按下)
PC7 EXTI7 - 超聲波距離傳感器 距離為低電平時間
PD1 EXTI1 - 右輪懸空傳感器 懸空后是高電平
PD2 EXTI2 - 左輪懸空傳感器
PD8 EXTI8 - 左邊碰撞傳感器 碰撞后是高電平
PD10 EXTI10 - 右邊碰撞傳感器 碰撞后是高電平
PE13 EXTI13 - 電源芯片事件引腳
PE3 EXTI3 - 電源芯片ACOK事件引腳 有充電座時 變?yōu)楦唠娖?無時變低
PC13 垃圾盒是否在位 高電平垃圾盒被取出
四、ADC輸入
PA0 - 4選1通道檢測 adc1_ch0
PA2 - 電池溫度檢測 adc1_ch2 1700~2000
PA3 - 邊刷電流檢測 adc1_ch3
PA4 - 防跌落右前 adc1_ch4
PA5 - 放電電流IBAT adc1_ch5
PA6 - BAT電池電壓 adc1_ch6
PA7 - 防跌右后 adc1_ch7
PC0 - 風機電流檢測 adc1_ch10 要檢測adc電壓 需要開啟VCC+電源 見iooutput.c
PC1 - 左驅動輪電流檢測 adc1_ch11
PC2 - 右驅動輪電流檢測 adc1_ch12
PC3 - 滾刷電流檢測 adc1_ch13
PC4 - 防跌左后 adc1_ch14
PC5 - 防跌左前 adc1_ch15
模擬通道芯片
1:沿邊傳感器 0-2000
2:電池ID 3790-3820
3:充電電流 0-1000
4:充電座電壓 2900-3200
五、捕獲輸入
PC9 - TIM8_CH4 風機編碼器
PE9 - TIM1_CH1 左輪編碼器
PE11 - TIM1_CH2 右輪編碼器
六、SPI(陀螺儀 BMI160)
* -------------CS PB12------------------------
* -------------SCK PB13------------------------
* -------------MISO PB14------------------------
* -------------MOSI PB15------------------------
七、IIC(與電源芯片bq24733通信)
PB6 SCL
PB7 SDA
************************************************** 片內資源 *************************************************
TIM6 BMI160數(shù)據(jù)獲取
TIM7 超聲波計數(shù)
目錄│文件列表:
└ a-meter-sweeping-robot-stm32
└ firmware
│ keilkilll.bat
│ readme.txt
│ 我的捷源項目.udb
├ Application
│ ├ ROBOT
│ │ ├ inc
│ │ │ │ ApplicationADC.h
│ │ │ │ applicationDrop.h
│ │ │ │ ApplicationDropCheck.h
│ │ │ │ ApplicationKey.h
│ │ │ │ ApplicationLed.h
│ │ │ │ ApplicationMotor.h
│ │ │ │ ApplicationPowerChip.h
│ │ │ │ Application_Ultrasonic.h
│ │ │ │ BehaviorManage.h
│ │ │ └ TaskManage.h
│ │ └ src
│ │ │ ApplicationADC.c
│ │ │ applicationDrop.c
│ │ │ ApplicationDropCheck.c
│ │ │ ApplicationKey.c
│ │ stm32f10x_gpio.c
│ │ stm32f10x_i2c.c
│ │ stm32f10x_iwdg.c
│ │ stm32f10x_pwr.c
│ │ stm32f10x_rcc.c
│ │ stm32f10x_rtc.c
│ │ stm32f10x_sdio.c
│ │ stm32f10x_spi.c
│ │ stm32f10x_tim.c
│ │ stm32f10x_usart.c
│ └ stm32f10x_wwdg.c
├ SYSTEM
│ ├ delay
│ │ │ delay.c
│ │ └ delay.h
│ ├ sys
│ │ │ sys.c
│ │ └ sys.h
│ ├ SystemTime
│ │ │ SystemTime.c
│ │ └ SystemTime.h
│ ├ usart
│ │ │ usart.c
│ │ └ usart.h
│ └ usart1
│ │ usart1.c
│ └ usart1.h
├ TEST_FUN
│ │ readme.txt
│ ├ DataScope
│ │ │ DataScope_DP.C
│ │ │ DataScope_DP.h
│ │ │ MiniBalance波形顯示上位機(請以管理員身份運行).exe
│ │ └ readme.txt
│ └ Test
│ │ testfun.c
│ └ testfun.h
├ USER
│ │ FreeRTOS.uvguix.Administrator
│ │ FreeRTOS.uvguix.Psheng
│ │ FreeRTOS.uvoptx
│ │ FreeRTOS.uvprojx
│ │ JLinkSettings.ini
│ │ main.c
│ │ main.h
│ │ stm32f10x.h
│ │ stm32f10x_conf.h
│ │ stm32f10x_it.c
│ │ stm32f10x_it.h
│ │ system_stm32f10x.c
│ │ system_stm32f10x.h
│ └ DebugConfig
│ │ FreeRTOS_STM32F103ZE.dbgconf
│ │ LED_STM32F103ZE.dbgconf
│ └ MI_STM32F103VE_1.0.0.dbgconf
└ USMART
│ readme.txt
│ usmart.c
│ usmart.h
│ usmart_config.c
│ usmart_str.c
└ usmart_str.h