请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
楼主: eric2013
收起左侧

【安富莱】V6,V5开发板用户手册,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至50章(2023-10-24)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-6-9 08:35:22 | 显示全部楼层
2019-06-09
下周开始将陆续发布更新章节。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-6-16 10:40:47 | 显示全部楼层
已经更新前两章节
回复

使用道具 举报

0

主题

28

回帖

28

积分

新手上路

积分
28
发表于 2019-6-16 19:19:35 | 显示全部楼层
现在st主推stm32cube,所以hal不得不学了,感谢硬汉哥,学习方便很多
回复

使用道具 举报

23

主题

1401

回帖

1470

积分

至尊会员

积分
1470
发表于 2019-6-17 09:36:57 | 显示全部楼层
终于更新了,赞
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-6-18 11:39:40 | 显示全部楼层
leimao 发表于 2019-6-16 19:19
现在st主推stm32cube,所以hal不得不学了,感谢硬汉哥,学习方便很多

回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2019-6-20 01:03:40 | 显示全部楼层
你好   V6的HAL库工程模板中 为什么没有  stm32f4xx_hal_msp.c 这个文件。 用不着吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-6-20 08:41:30 | 显示全部楼层
夏清 发表于 2019-6-20 01:03
你好   V6的HAL库工程模板中 为什么没有  stm32f4xx_hal_msp.c 这个文件。 用不着吗?

对,用不到这个文件,如果将驱动的底层IO配置都放在这个文件,导致用户移植的时候,这个文件很容易被遗忘。

程序里面是独立到各个bsp驱动包里面实现,保证驱动文件的独立性。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-6-23 09:51:56 | 显示全部楼层
2019-06-23
发布V0.2版本

新增章节:
第3章 STM32F429 整体把控
第4章 STM32F429 工程模板建立(MDK5)
第5章 STM32F429 下载和调试方法(MDK5)   

新增例子:
V6-000_程序模板
回复

使用道具 举报

2

主题

19

回帖

25

积分

新手上路

积分
25
发表于 2019-6-26 18:02:14 | 显示全部楼层
支持~~~~~~~~~
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2019-6-28 15:44:01 | 显示全部楼层
刚发现这个论坛,来逛逛
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-6-30 10:23:45 | 显示全部楼层
2019-06-30
发布V0.3版本

新增章节:
第6章 STM32F429 工程模板建立(IAR8)
第7章 STM32F429  下载和调试方法(IAR8)
第8章 STM32F429 的终极调试组件 Event Recorder
第9章 STM32F429 重要知识点数据类型,变量和堆栈
第10章 STM32F429 的 FLASH,RAM 和栈使用情况(map 和 htm 文件)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-7 10:59:16 | 显示全部楼层
发布V0.4版本

新增章节:
第11章 STM32F429 移植 SEGGER 的硬件异常分析

新增例子:
V6-001_移植SEGGER的硬件异常分析机制
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-7-10 14:00:19 | 显示全部楼层
你好,刚看了stm32f4xx_hal_gpio.c文件,最后对IO操作的有两个函数。
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)  和  __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 不是很明白,可以解释下吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-10 14:20:48 | 显示全部楼层
清风徐来 发表于 2019-7-10 14:00
你好,刚看了stm32f4xx_hal_gpio.c文件,最后对IO操作的有两个函数。
void HAL_GPIO_EXTI_IRQHandler(uint ...

66.jpg
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-7-10 14:26:48 | 显示全部楼层

原来HAL库这样搞的。 利用两个函数 来实现一个中断处理函数。
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-7-10 16:08:54 | 显示全部楼层
本帖最后由 清风徐来 于 2019-7-10 16:14 编辑

哥。看到时钟配置这块, stm32f4xx_hal_rcc.c 定义了 __weak HAL_StatusTypeDef HAL_RCC_DeInit(void)  弱函数。
                           而在 stm32f4xx_hal_rcc_ex.c中 直接定义了 HAL_StatusTypeDef HAL_RCC_DeInit(void) 具体的操作函数。
这样做有什么意义?   还有 stm32f4xx_hal_rcc.c 与stm32f4xx_hal_rcc_ex.c,为什么不合并成一个C文件?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-10 16:33:20 | 显示全部楼层
清风徐来 发表于 2019-7-10 16:08
哥。看到时钟配置这块, stm32f4xx_hal_rcc.c 定义了 __weak HAL_StatusTypeDef HAL_RCC_DeInit(void)  弱 ...

文件stm32f4xx_hal_rcc_ex.c不是必须要用到的,我很多时候基本不用这个文件。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-14 00:34:37 | 显示全部楼层
2019-07-14
发布V0.5版本

新增章节:
第12章 STM32F429 的 HAL 库框架设计学习
第13章 STM32F429 启动过程详解
第14章 STM32F429 的电源,复位和时钟系统
第15章 STM32F429 的 GPIO 基础知识(重要)
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-7-14 13:13:00 | 显示全部楼层
哥 ,利用KEIL5,可以在仿真工程的时候,查看系统及各个外设的时钟频率吗,以及各个IO口的状态?  以前用过新唐的芯片,带这样的功能的。不知道F429怎么查看?  
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-7-14 14:49:56 | 显示全部楼层
V6模板  时钟配置有点问题吧
捕获333.PNG
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-15 07:07:20 | 显示全部楼层
清风徐来 发表于 2019-7-14 14:49
V6模板  时钟配置有点问题吧

谢谢指出,注释有问题,注释的那个PLL_M = 8
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-15 07:07:44 | 显示全部楼层
清风徐来 发表于 2019-7-14 13:13
哥 ,利用KEIL5,可以在仿真工程的时候,查看系统及各个外设的时钟频率吗,以及各个IO口的状态?  以前用过 ...

有时钟获取API,调用下即可
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2019-7-16 19:10:08 | 显示全部楼层

支持支持,支持
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-7-18 16:33:38 | 显示全部楼层
                if (pBtn->LongTime > 0)
                {
                        if (pBtn->LongCount < pBtn->LongTime)
                        {
                                /* 发送按钮持续按下的消息 */
                                if (++pBtn->LongCount == pBtn->LongTime)
                                {
                                        /* 键值放入按键FIFO */
                                        bsp_PutKey((uint8_t)(3 * i + 3));
                                }
                        }
                        else
                        {
                                if (pBtn->RepeatSpeed > 0)
                                {
                                        if (++pBtn->RepeatCount >= pBtn->RepeatSpeed)
                                        {
                                                pBtn->RepeatCount = 0;
                                                /* 常按键后,每隔10ms发送1个按键 */
                                                bsp_PutKey((uint8_t)(3 * i + 1));
                                        }
                                }
                        }
                }

按键检测函数中 :这段没搞明白?可以再解释下吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-18 17:00:52 | 显示全部楼层
清风徐来 发表于 2019-7-18 16:33
if (pBtn->LongTime > 0)
                {
                        if (pBtn->LongCount < pBtn->LongTime)

先看V7的按键部分学习吧,这个部分代码一模一样

http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-7-19 08:32:46 | 显示全部楼层
eric2013 发表于 2019-7-18 17:00
先看V7的按键部分学习吧,这个部分代码一模一样

http://www.armbbs.cn/forum.php?mod=viewthread&t ...

好的。 如果一个键 ,有多种功能。 比如 按下第一次是 A , 按下二次是B , 再次按下 回到A 。 实现这样的功能,该怎么实现呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-19 09:27:22 | 显示全部楼层
清风徐来 发表于 2019-7-19 08:32
好的。 如果一个键 ,有多种功能。 比如 按下第一次是 A , 按下二次是B , 再次按下 回到A 。 实现这样的 ...

在自己的应用程序里面处理即可,做个变量标志。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-21 13:16:12 | 显示全部楼层
2019-07-21
发布V0.6版本

新增章节:
第16章 STM32F429 必备的 HAL 库 AP(I 重要)
第17章 STM32F429 之 GPIO 的 HAL 库 API
回复

使用道具 举报

73

主题

1185

回帖

1404

积分

至尊会员

积分
1404
发表于 2019-7-21 18:16:58 | 显示全部楼层
谢谢分享,!!!
回复

使用道具 举报

1

主题

28

回帖

31

积分

新手上路

扫码点餐

积分
31
QQ
发表于 2019-7-21 23:27:13 | 显示全部楼层
加油,会越来越好!
回复

使用道具 举报

1

主题

28

回帖

31

积分

新手上路

扫码点餐

积分
31
QQ
发表于 2019-7-21 23:27:39 | 显示全部楼层
加油,会越来越好!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-7-28 02:13:13 | 显示全部楼层
发布V0.7版本

新增章节:
第18章 STM32F429 的 GPIO 应用之跑马灯
第19章 STM32F429 的 GPIO 应用之按键 FIFO  
新增例子:
V6-002_跑马灯
V6-003_按键检测(软件滤波,FIFO机制)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-8-9 09:53:58 | 显示全部楼层
2019-08-04
发布V0.8版本

新增章节:
第20章 STM32F429 的 GPIO 应用之无源蜂鸣器
第21章 STM32F429 的 NVIC 中断分组和配置(重要)
第22章 STM32F429 的 SysTick 实现多组软件定时器


新增例子:
V6-004_无源蜂鸣器
V6-005_基于Systick滴答定时器的多组软件定时器实现
回复

使用道具 举报

3

主题

134

回帖

143

积分

初级会员

积分
143
发表于 2019-8-11 22:04:35 | 显示全部楼层
hal库的思维方式真的很好
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2019-8-13 17:28:09 | 显示全部楼层
Event Recorder太好用了,的确是单片机调试的利器
回复

使用道具 举报

8

主题

104

回帖

138

积分

初级会员

积分
138
发表于 2019-8-16 18:07:49 | 显示全部楼层
顶顶顶,硬汉哥牛逼
回复

使用道具 举报

0

主题

43

回帖

43

积分

新手上路

积分
43
发表于 2019-8-17 08:49:53 | 显示全部楼层
很给力,终于出来了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-8-18 02:05:09 | 显示全部楼层
2019-08-18
发布V0.9版本

新增章节:
第23章 STM32F429 的 USART 串口基础知识和HAL库 API
第24章 STM32F429 的 USART 应用之八个串口FIFO 实现
附件 E---基于 CMSIS-Driver 的 8 串口DMA不定长收发实现
附件 F---基于 mbedTLS 的 AES 加密实现

新增例子:
V6-006_串口和PC机通信(驱动支持8串口FIFO)
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-8-19 16:09:13 | 显示全部楼层
老大, HAL库的工程模板中,包含的 内核头文件哪几个是必须的?  我看了 莫哥的归纳 ,core_cm4.h 、core_cmFunc.h 、core_cmInstr.h 、core_cmSimd.h 和 cmsis_armcc.h 这5个是必须的。 但是我看 你的模板 ,只调用了 core_cm4.h  与  cmsis_armcc.h这两个。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2019-8-19 16:36:42 | 显示全部楼层
清风徐来 发表于 2019-8-19 16:09
老大, HAL库的工程模板中,包含的 内核头文件哪几个是必须的?  我看了 莫哥的归纳 ,core_cm4.h 、core_c ...

这个用户不用去管,用户仅需把最新版CMSIS软件包include文件夹路径添加上即可。

你要到那些功能了,就会自动去关联,因为在F4的头文件里面有包含。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-29 20:52 , Processed in 0.297214 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表