【E1832】某米扫地机器人STM32代码

2021-10-26 19:44:22      索炜达电子      722     

项目编号:E1832

文件大小:3.9M

源码说明:带中文注释

开发环境:C编译器

简要概述

学习使用,某米扫地机器人STM32代码; 程序驱动包含I2C、PWM、SPI、多路ADC与DMA、编码器输入捕获、外部中断、通信协议、IAP升级、PID、freertos操作系统等 代码注释清晰、代码规范 stm32f103ev工程 硬件驱动包括陀螺仪姿态bmi160、电源管理bq24773等


************************************************** 文件夹说明 *************************************************

USER文件夹        main函数

  

SYSTEM文件夹      必要的延时函数 调试串口 源文件初始化


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启动文件 和内核函数文件


FWLIB文件夹       STM32库文件


FreeRTOS_CORE   

FreeRTOS 文件夹     freertos内核函数


Usmart文件夹        usmart调试函数源码

 

testfunction文件夹  测试函数


readme              说明文档





************************************************** 硬件连接说明 *************************************************


一、普通IO输出


PE6  - 电源控制IO       高电平关机

PE2  - 风机电源控制IO   高电平使能

PE8  - VA+电源控制IO    高电平使能

PC8  - VCC+电源控制IO   高电平使能

PA11 - V+电源控制IO     高电平使能

PC6  - 超声波发送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事件引脚 有充电座时 变为高电平 无时变低

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数据获取

TIM7 超声波计数

目录│文件列表:

 └ 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

TAG扫地机器人
  • 9 次
  • 5 分