版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WordSTM32外设驱动库分析及如何实现一、如何控制单片机?
(单片机)的内存映射图解析
这里以(STM32)F429(芯片)为例,讲解下单片机芯片内存映射图。从此图中可以看到芯片的外设被分配了512M的空间,然而真正的外设其实没有使用到512M的内存空间。
然后我们操作外设时,只需要操作它对应的内存地址即可。更加详细的外设内存地址,可以参考芯片的用户手册(不是数据手册)的Memorymap章节。
因为单片机是将外设映射到内存地址上,所以我们可以像操作内存一样来操作外设(写/读)。
我们在操作内存时是通过地址来进行操作的,由于单片机已经将外设与内存进行了映射,所以我们在操作单片机外设时只需要操作外设映射的内存地址就行。
内存如何操作?
在(C语言)中操作内存,我们可以用指针来进行操作。在(汇编)语言中由于没有指针这个概念,所以我们在操作地址时只能用一些内存读写指令来完成。比如:LDR,STR
结构体操作与宏定义操作的对比
C语言——宏定义形式
#define
GPIOA
(*(volatile
uint32_t
*)(0x000800E0))#define
GPIOA_DR
(*(volatile
uint32_t
*)(0x000800E4))#define
GPIOA_MR
(*(volatile
uint32_t
*)(0x00080108))#define
GPIOA_TR
(*(volatile
uint32_t
*)(0x00080108))
C语言——结构体操作
struct
GPIOA_Reg{
volatile
uint32_t
dr;
volatile
uint32_t
mr;
volatile
uint32_t
tr;}GPIOA_REG
汇编语言操作内存
LDR
r0,
=0x00800010MOV
r1,
#2STR
r1,
[r0]
二、(寄存器)方式操作单片机
代码结构框架:
文件结构
一个芯片头文件:外设的地址宏定义以及外设相关的结构体定义
查看芯片的用户手册(注意:不是数据手册)中寄存器对应的相应地址。然后使用宏定义来将它们定义好,同时定义好结构体来更加方便的管理外设寄存器组。这里以STM32F1系列为例
•
一个启动文件:汇编编写的、中断向量表等
•
用户代码文件:剩余就是用户代码文件了
•
各个芯片的外设驱动函数编写(读/写、控制)、以及用户逻辑部分代码。
三、使用HAL库方式操作单片机
HAL库与固件库的区别
HAL全称Hardwareabstractlayer((硬件)抽象层),这是一个大家公认并且遵守的一种函数名称命名、资源定义。因为是统一的命名规范,所以当用户更换芯片平台后由于函数命名与所使用的资源都与具体硬件没有关系,这样就不需要修改用户层代码了。
而所谓的标准库其实就是芯片厂商公司内部自己命名与实现的库并且各个厂商的命名规则不一样,这样就会导致可移植性变差。当用户更换了芯片平台后由于它们各自的A(PI)函数不一样就会导致用户需要修改应用层代码。
HAL库设计
1.HAL框架设计
2.HAL资源命名规则
HAL函数命名规则:
中断与(时钟)设置宏:
回调函数命名规则:
3.文件结构:
一个芯片头文件:外设的地址宏定义以及外设相关的结构体定义
查看芯片的用户手册(注意:不是数据手册)中寄存器对应的相应地址。然后使用宏定义来将它们定义好,同时定义好结构体来更加方便的管理外设寄存器组。这里以STM32F1系列为例
一个启动文件:汇编编写的、中断向量表等。
一个HAL库全局头文件:一些全局的宏定义以及包含其他外设头文件
HAL库文件:芯片外设的驱动函数
四、HAL库组成说明
1.HAL库的数据结构体
•
外设句柄结构体
•
初始化和配置结构体
•
特定的处理结构体(读写/控制)
**外设句柄结构体(跟硬件不相关):**
比如:下面这个串口结构体
typedef
struct{
USART_TypeDef
*Instance;
/*
USART
regis(te)(rs)
base
(ad)dress
*/
USART_InitTypeDef
Init;
/*
Usart
communication
pa(ram)eters
*/
uint8_t
*pTxBuffPtr;/*
Pointer
to
Usart
Tx
transfer
Buffer
*/
uint16_t
TxXferSize;
/*
Usart
Tx
Transfer
size
*/
__IO
uint16_t
TxXferCount;/*
Usart
Tx
Transfer
Counter
*/
uint8_t
*pRxBuffPtr;/*
Pointer
to
Usart
Rx
transfer
Buffer
*/
uint16_t
RxXferSize;
/*
Usart
Rx
Transfer
size
*/
__IO
uint16_t
RxXferCount;
/*
Usart
Rx
Transfer
Counter
*/
(DMA)_HandleTypeDef
*hdmatx;
/*
Usart
Tx
DMA
Handle
parameters
*/
DMA_HandleTypeDef
*hdmarx;
/*
Usart
Rx
DMA
Handle
parameters
*/
HAL_LockTypeDef
Lock;
/*
Locking
object
*/
__IO
HAL_USART_StateTypeDef
State;
/*
Usart
communication
state
*/
__IO
HAL_USART_ErrorTypeDef
ErrorCode;/*
USART
Error
code
*/}USART_HandleTypeDef;
初始化结构体(跟硬件相关):
比如:下面这个串口硬件相关的结构体
typedef
struct{
uint32_t
BaudRate;
/*!
特定的处理结构体(跟硬件有关):
比如:下面这个(ADC)处理处理结构体
typedef
struct
{
uint32_t
Channel;
/*!
2.HAL库公共资源
HALStatus:状态枚举
Typedef
enum{HAL_OK
=
0x00,HAL_ERROR
=
0x01,HAL_BUSY
=
0x02,HAL_(TI)MEOUT
=
0x03}
HAL_StatusTypeDef;
HALLocked:用于防止共享资源被意外访问
typedef
enum{HAL_UNLOCKED
=
0x00,
/*!
公共的宏定义:NULL和HAL_MAX_DELAY
#ifndef
NULL#define
NULL
(void
*)
0#endif#define
HAL_MAX_DELAY
0xFFFFFFFF
3.HAL库中断回调函数实现说明
(1)使用__weak定义好回调函数。如果用户自己重写了回调函数,那么编译器就会使用用户重写的这个回调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场信息化管理方案
- 高校心理咨询师职业发展方案
- 2024-2025学年新教材高中政治第三单元文化传承与文化创新第8课第1框文化的民族性与多样性课时作业含解析部编版必修4
- 2024-2025学年新教材高中英语Unit4HistoryandTraditionsDiscoveringUsefulStructures课时素养评价含解析新人教版必修2
- 2024-2025学年新教材高中政治第三单元文化传承与文化创新第9课第3框文化强国与文化自信课时作业含解析部编版必修4
- 2024-2025学年八年级历史下册第五单元国防建设与外交成就第15课钢铁长城练习题新人教版
- 2024-2025年新教材高中物理第2章抛体运动1.2小船渡河和关联速度问题课时练习含解析鲁科版必修2
- 新教材高中政治7.1世界是普遍联系的作业3含解析新人教版必修4
- 2024-2025学年高中数学第一章统计1.5.2估计总体的数字特征课时素养评价含解析北师大版必修3
- 2024年学校家具安装与维护合同
- 中小学119消防宣传月活动方案3篇
- 中汇富能排矸场设计
- 2024年保安员证考试题库及答案(共160题)
- 2024年大学试题(财经商贸)-统计预测与决策考试近5年真题集锦(频考类试题)带答案
- 大学生职业生涯规划成品
- 主要负责人和安全生产管理人员安全培训课件初训修订版
- 人教版2024新版八年级全一册信息技术第1课 开启物联网之门 教学设计
- 2024220kV 预制舱式模块化海上风电升压站
- 2024秋期国家开放大学《国家开放大学学习指南》一平台在线形考(任务一)试题及答案
- 2024年新人教版道德与法治一年级上册 9 作息有规律 教学课件
- 2024新人教版道法一年级上册第二单元:过好校园生活大单元整体教学设计
评论
0/150
提交评论