【单片机学习笔记】(16):巡线小车制作、stm32程序启动过程、 工程目录下的组、HAL库关键文件、固件包、MDK5使用技巧、Include红叉报错

巡线小车制作

电烙铁在275度左右比较适合上锡。

103可调电阻最大阻值(两端引脚的阻值)约为10k欧中间的引脚与两端引脚阻值可调

104可调电阻最大阻值约100k欧

stm32(Cortex—M3)程序的启动过程

一上电就会触发复位异常。

并且会跳转到中断向量表 特定偏移位置,然后获取里面的内容。

修改复位异常内的内容,就可以让处理器去执用户指定的操作。

启动文件(.s)做了如下四个步骤:

  1. 初始化堆栈指针
  2. 设置PC指针的值(该值减8即是当前指令运行的地址)
  3. 设置中断向量表
  4. 配置系统时钟
  5. 调用c库函数__main初始化堆栈,最终会跳转到用户编写的main函数

(Stack  栈   |    Heap  堆)

HAL库工程模板注意事项

固件包

固件包中的Drivers文件夹内包含了BSP、CMSIS、HAL_Driver。BSP是官方开发板的支持包,CMSIS里是各种接口库,HAL_Driver是HAL库驱动包。

Middlewares是中间件,提供一些对硬件的服务,例如图形界面库、主从机接口库等

Projects内是官方开发板的各种工程实例,包含各种外设如何使用 ,以及外设和中间件的耦合

HAL库关键文件

HAL库开发指南里的第三章第五章中有各种文件的介绍,为了理解工程的运行流程,必须要了解这些文件的作用和它们之间的关系,才能在项目的开发中得心应手。

startup_stm32f103xe.s(启动文件)(在组MDK-ARM下):主要进行堆栈的初始化,中断向量表以及中断函数的定义等

system_stm32f1xx.c与同名的.h文件(在组CMSIS下):一起声明和定义了系统初始化函数SystemInt以及系统时钟更新函数SystemCoreClockUpDate。进行时钟系统的一些初始化操作和中断向量表偏移地址设置。

stm32f1xx_hal.c和同名的.h文件(在组HAL_Driver下):包含HAL通用API(比如HAL_Init,HAL_Delnit,HAL_Delay等)

其他:

stm32f1xx_it.c和同名.h文件(在组User/Core下):一些中断服务函数的声明

stm32f1xx_hal_msp.c(在组User/Core下): MSP是MCU support package的缩写,作用是进行mcu级别的硬件初始化设置。

stm32f1xx_hal_def.h:包含HAL的通用数据类型定义和宏定义

stm32f1xx.h:是所有f1系列的顶层文件,任何型号的f1芯片都必须包含这个文件

stm32f1xx_hal_conf.h:HAL的配置文件,主要用来选择使能何种外设以及一些时钟的相关参数设置。会决定哪些外设驱动会被编译到工程中

stm32f103xx.h: 是stm32f103系列芯片通用的片上外设访问层头文件。主要是寄存器的定义声明以及封装内存操作。

_weak修饰符

如果在函数名称前面加上_weak修饰符,则是一个弱函数。用户可以在文件中重新定义一个同名函数,最终编译的时候,会选择没有_weak修饰的函数。

工程目录下的组

  1. 组HALLIB下面存放ST官方提供的HAL库文件
  2. 组CORE下面存放固件库必须的核心头文件和启动文件
  3. 组SYSTEM存放ALIENTEK提供的共用代码
  4. 组HARDWARE下面存放的是每个实验的外设驱动代码
  5. 组USER下面存放用户代码
  6. 组Doc放说明文件

MDK5使用技巧

一般建立stm32工程推荐使用cubeMX工具,但也要学习手动移植Hal库,以便更熟练地使用MDK5。在HAL库开发指南里的第三章第5小节中有一些使用技巧,可以常去翻看并且主动去使用

 

Include红叉报错

红叉报错,但不影响编译。Delay.h等头文件包含不了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于巡线小车学习笔记,可以参考以下内容: 1. 文件stm32部分源码,含各个模块的使用。其中涉及到直流电机控制模块、pca9685舵机驱动器模块、mpu6050三轴角度驱动模块、ADC测电压等。 2. 平衡小车项目功能需求分析。对于平衡小车的整体框架及开发流程进行分析,括环境数据采集进程、小车PID控制进程、菜单显示进程、交互进程、中断处理等。 3. 在选型手册中可以查看stm32的资源。例如,STM32F103ZET6拥有144个引脚、112个IO口(大部分IO口都耐5V,模拟通道除外)、512K FLASH和64k SRAM等。 综上所述,在学习线小车过程中,可以参考stm32部分源码和各个模块的使用,了解平衡小车项目的功能需求分析和开发流程,以及了解选型手册中stm32的资源信息。这些内容将有助于你对巡线小车学习和开发。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [电赛备战:基于stm32的多功能巡线避障小车](https://download.csdn.net/download/qq_32971095/88226743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [stm32平衡小车学习记录1](https://blog.csdn.net/qq_60595797/article/details/126208318)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [【单片机学习笔记】(12):定时器中断、巡线小车各模块原理、stm32HAL](https://blog.csdn.net/wenhaiii/article/details/120469472)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值