硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4689|回复: 24
收起左侧

[BSP视频教程] STM32H7视频教程第10期:STM32H7的GPIO专题,非阻塞式驱动编程思想,按键FIFO,蜂鸣器驱动的新式玩法(2022-03-23)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
发表于 2022-3-23 02:33:21 | 显示全部楼层 |阅读模式
本期视频教程为大家分享BSP驱动教程第10期,非阻塞式驱动设计思想,我们的按键FIFO,串口FIFO和触摸FIFO都是类似的用法。

本期视频我们把这种实现思路做的说明,然后讲解下我们的驱动代码实现。

下次的GPIO应用实战视频中,移植到全新的器件上进行说明,使用杜邦线洞洞板搭建的,不使用我们自己的开发板,做实际的驱动移植魔改实战。

视频(1080p):

https://www.bilibili.com/video/BV1y3411p7NN




本期视频主要分为如下几个部分:
第1部分:
1、硬件设计部分。
(1)按键硬件设计。
(2)无源蜂鸣器硬件设计。

2、阻塞式和非阻塞式编程思想。
(1)阻塞式设计效果,代码举例测试。
(2)外部中断式设计效果,代码举例测试。
(3)非阻塞式设计。

3、按键FIFO实现。
(1)FIFO设计思路,看教程文档。
(2)测试按键效果,感性认识下。
(3)调试状态FIFO变化,调试看FIFO
(4)代码说明

4、蜂鸣器驱动新式实现。


参考资料:

本次视频魔改的例子:
V7-002_按键检测(视频教程专用,软件滤波,FIFO机制).7z (1.31MB)


评分

参与人数 1金币 +20 收起 理由
missfox + 20 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
 楼主| 发表于 2022-3-23 02:34:53 | 显示全部楼层
视频中第1部分有句话说错了,我们开发板用的是无源蜂鸣器,需要PWM驱动。
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2022-3-23 12:21:13 | 显示全部楼层
不错不错,已经发布10期了
代码不规范,亲人两行泪!
回复

使用道具 举报

40

主题

206

回帖

336

积分

高级会员

积分
336
发表于 2022-3-23 16:01:09 | 显示全部楼层
期待啥时候硬汉哥讲讲RTOS内核
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
 楼主| 发表于 2022-3-23 16:16:07 | 显示全部楼层
会飞的猪_2020 发表于 2022-3-23 16:01
期待啥时候硬汉哥讲讲RTOS内核

ThreadX内核教程已经做了三期了,后面继续更新。
回复

使用道具 举报

0

主题

28

回帖

28

积分

新手上路

积分
28
发表于 2022-3-23 20:30:37 | 显示全部楼层
不错不错,
回复

使用道具 举报

0

主题

28

回帖

28

积分

新手上路

积分
28
发表于 2022-3-23 20:31:08 | 显示全部楼层
不错不错
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2022-4-9 17:47:59 | 显示全部楼层

不错不错,
回复

使用道具 举报

8

主题

128

回帖

152

积分

初级会员

积分
152
发表于 2022-4-11 13:52:54 | 显示全部楼层
看了视频, 感觉有个很难搞定的问题
受众群体不好针对, 对于初学者, 可能需要从最基础的知识点开始讲解, 不然就难以掌握, 但是展开太多又搞得节奏拖沓, 现在短视频横行, 很难有耐心看完一个几十分钟的技术类视频
对于有一定工作经历的从业者, 往往只关注其中最干货的技术点, 也难跟视频的节奏.
建议在这方面做些取舍, 更加压缩一些内容, 比如那个IO上拉5V兼容PS2的问题, 在画面中文字详细指出就好,不必讲解, 初学者抄图的时候应该能看到, 也避免一些与核心无关的信息干扰注意力.
然后增加视频关键点的跳转目录, 这个B站是可以做的,或者做到进度条上, 老手看的话可以直接拖过去.

评分

参与人数 1金币 +2 收起 理由
Xaurora + 2 赞一个!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
 楼主| 发表于 2022-4-11 14:28:02 | 显示全部楼层
amfy 发表于 2022-4-11 13:52
看了视频, 感觉有个很难搞定的问题
受众群体不好针对, 对于初学者, 可能需要从最基础的知识点开始讲解, 不 ...

跳转功能我弄过几期,B站的贼难用,放弃了,以后好用了再弄弄。

回复

使用道具 举报

8

主题

128

回帖

152

积分

初级会员

积分
152
发表于 2022-4-11 14:37:55 | 显示全部楼层
eric2013 发表于 2022-4-11 14:28
跳转功能我弄过几期,B站的贼难用,放弃了,以后好用了再弄弄。

20220411143454.png
这种方式, 应该是剪视频的时候做到视频底部的一个视频进度条.
还有就是评论中发时间节点貌似也可以,B站会把发出来的时间点变成视频的跳转链接,点一下就跳过去了, 比较方便,就是需要将这个评论置顶,才会比较方便
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
 楼主| 发表于 2022-4-11 14:41:30 | 显示全部楼层
amfy 发表于 2022-4-11 14:37
这种方式, 应该是剪视频的时候做到视频底部的一个视频进度条.
还有就是评论中发时间节点貌似也可以,B ...

视频剪辑这块,暂时不打算弄,没精力搞,非常感谢建议。

回复

使用道具 举报

0

主题

67

回帖

67

积分

初级会员

积分
67
发表于 2022-6-3 21:42:39 | 显示全部楼层
硬汉哥 不错不错
回复

使用道具 举报

5

主题

98

回帖

113

积分

初级会员

积分
113
发表于 2023-2-24 11:17:40 | 显示全部楼层
我在移植按键的时候,使用了组合键。出现两个按键按下有延时的时候会有先按那个按键的事件消息传出。造成按下组合键是有一定概率先执行一次单按键事件。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
 楼主| 发表于 2023-2-25 09:46:09 | 显示全部楼层
leng_qian 发表于 2023-2-24 11:17
我在移植按键的时候,使用了组合键。出现两个按键按下有延时的时候会有先按那个按键的事件消息传出。造成按 ...

可以使用坛友这个改进下

【按键检测-功能大全】基于硬汉程序思想-进行深度优化
https://www.armbbs.cn/forum.php? ... 6136&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2023-6-19 20:25:09 | 显示全部楼层
请问怎么把长按和短按区分开呀,程序上想触发长按事件就一定会先触发短按事件,怎么才能得到长按的时候前面不触发短按呀?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
 楼主| 发表于 2023-6-20 00:17:51 | 显示全部楼层
2441274997 发表于 2023-6-19 20:25
请问怎么把长按和短按区分开呀,程序上想触发长按事件就一定会先触发短按事件,怎么才能得到长按的时候前面 ...

分享个STM32H7的按键单击,双击和长按的例子
https://www.armbbs.cn/forum.php? ... 7150&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2023-8-19 19:17:08 | 显示全部楼层
https://github.com/530china/EmbeddedButton/tree/master
参考硬汉的fifo思想写的按键驱动,支持常见的单双多击,长按及短按长按等按键事件,有需要的可以看下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
 楼主| 发表于 2023-8-21 00:51:38 | 显示全部楼层
520China 发表于 2023-8-19 19:17
https://github.com/530china/EmbeddedButton/tree/master
参考硬汉的fifo思想写的按键驱动,支持常见的单 ...

谢谢分享。
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2024-4-24 20:51:30 | 显示全部楼层

硬汉哥,我看你的驱动代码都是硬件部分和模块对象分开定义的写法,然后对模块对象部分进行功能驱动编写,最后提供外部接口。然后我看别的大佬写的驱动代码中编写的方法,是将模块进行大量抽象,就是将模块分成属性和功能函数,在使用时,需要将其实例化进行接口调用。请问这两种写法有优劣之分嘛?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
 楼主| 发表于 2024-4-25 08:39:30 | 显示全部楼层
浅末哈哈 发表于 2024-4-24 20:51
硬汉哥,我看你的驱动代码都是硬件部分和模块对象分开定义的写法,然后对模块对象部分进行功能驱动编写, ...

CMSIS-Driver就是你说的这种方式,优势是形成驱动的规范化。

而CMSIS-Driver相比与我们的驱动,就是在我们的驱动基础上再做了一个API统一规划。
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2024-4-25 20:10:59 | 显示全部楼层
eric2013 发表于 2024-4-25 08:39
CMSIS-Driver就是你说的这种方式,优势是形成驱动的规范化。

而CMSIS-Driver相比与我们的驱动,就是在 ...

谢谢硬汉哥!
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2024-5-21 09:03:16 | 显示全部楼层
本帖最后由 土豆 于 2024-5-21 13:27 编辑

adc采集电压,引脚接了两个电阻,近地端电阻10K,远地端电阻95k。总电压3.3。
引脚初始化为模拟输入之前,万用表采集引脚电压0.32V,初始化模拟输入不带上下拉,万用表量出来0.14V,adc采集到0.17V。哥,这是什么原因?
123.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107418
QQ
 楼主| 发表于 2024-5-21 14:53:39 | 显示全部楼层
土豆 发表于 2024-5-21 09:03
adc采集电压,引脚接了两个电阻,近地端电阻10K,远地端电阻95k。总电压3.3。
引脚初始化为模拟输入之前, ...

ADC有几十KΩ的输入阻抗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-31 08:30 , Processed in 0.414512 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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