OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: warship

独家吐血原创奉献 !!! - - - - - - 仅需一个头文件,就可以彻底甩开库函数进行STM32高效编程

  [复制链接]

0

主题

3

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-6-3
在线时间
0 小时
发表于 2019-6-3 13:27:11 | 显示全部楼层
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2019-6-3
在线时间
3 小时
发表于 2019-6-3 13:41:49 | 显示全部楼层
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-5-29
在线时间
7 小时
发表于 2019-6-3 13:51:08 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
319
金钱
319
注册时间
2018-5-26
在线时间
106 小时
发表于 2019-6-3 14:03:22 | 显示全部楼层
谢谢楼主
回复 支持 反对

使用道具 举报

10

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2072
金钱
2072
注册时间
2016-8-15
在线时间
413 小时
发表于 2019-6-3 15:52:34 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4416
金钱
4416
注册时间
2018-5-11
在线时间
922 小时
 楼主| 发表于 2019-6-3 22:06:04 | 显示全部楼层

不是Hal库,我的理念是,让库见鬼去吧。
脱了库的感觉非常爽,你懂的。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1746
金钱
1746
注册时间
2015-6-11
在线时间
308 小时
发表于 2019-6-4 08:47:43 | 显示全部楼层
本帖最后由 zc123 于 2019-6-4 09:24 编辑

虽然我也讨厌HAL库的雍肿,效率低,但你这是实现stm32f10x.h这个头文件的在封装而已,HAL库实现的是接口API和软件逻辑,这才是主要功能,类似USART,RCC,ETH模块,它是实现初始化,读写接口的,中断响应,状态读取/清除这整套API应用的,你的封装思路是没有这部分逻辑的,其实你的思路和寄存器操作一样的,库和寄存器的使用这方面争论已经持续很久,我是认为没比较的理由,因为设计的目的都不一样,库是为了脱离硬件的封装,寄存器则为了更高的效率,没有任何可比性。
你的优势就是和直接的寄存器操作的比较,大部分情况比直接包含stm32f10x.h更直观。但是实际上按照你的API,脱离寄存器文档是不可能,因为涉及位的操作,特别是多位的操作,不去查文档,单靠命名并不能完全解决问题,我的建议是需要先理清楚这个是否是伪需求,不然花了大量时间并不值得,而且这里面大部分是替换的工作量,核心的就位操作或者位域的知识。
回复 支持 19 反对 0

使用道具 举报

0

主题

3

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2014-3-7
在线时间
95 小时
发表于 2019-6-4 09:37:26 | 显示全部楼层
感谢 分享,多谢了!
回复 支持 反对

使用道具 举报

0

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
356
金钱
356
注册时间
2016-9-23
在线时间
107 小时
发表于 2019-6-4 10:37:18 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2018-7-16
在线时间
32 小时
发表于 2019-6-4 11:25:13 | 显示全部楼层
看起来很高大上
回复 支持 反对

使用道具 举报

1

主题

42

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2013-8-18
在线时间
56 小时
发表于 2019-6-4 12:28:02 | 显示全部楼层

支持一下
回复 支持 反对

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4416
金钱
4416
注册时间
2018-5-11
在线时间
922 小时
 楼主| 发表于 2019-6-4 21:08:45 | 显示全部楼层
本帖最后由 warship 于 2019-6-4 21:52 编辑
zc123 发表于 2019-6-4 08:47
虽然我也讨厌HAL库的雍肿,效率低,但你这是实现stm32f10x.h这个头文件的在封装而已,HAL库实现的是接口API ...

您说得非常对,确实本方法的级别与直接操作寄存器相当。
但统一了操作的格式,并且比直接操作寄存器要直观易用得多。
也由于,我这里只是一个头文件,不可能包含任何代码,所以肯定也不可能包含API、函数什么的。
但实际上,外设寄存器的各BIT位之间,绝大多数情况下是各自独立的,不存在多少逻辑,
库函数初始化的时候,基本上一个结构体成员也就操作某位或某连续几位,
熟悉一下寄存器就很清楚了,往往库函数版的一句赋值语句就对应一项寄存器某位的修改。
当然有些也会有一些复杂的逻辑,比如设置串口的波特率(需要根据总线具体速率现算出设置值来),但这些特定的API并不多,自己参考别人的程序自己积累几个常用函数就足够了。
命名不能完全解决问题但帮助记忆了不少,我说的不用去查文档,一部分原因是比如bRCC_ENABLE_XXX就可以打开外设XXX的时钟之类的宏,
另一部分原因是在我的头文件中对各BIT的作用加了不少注释(当然还可以更详尽),编程时使用F12很容易定位到相关的定义,基本无须再去翻看寄存器的详细定义。目前为了与ST的文档一致,各BIT位沿用了简化的名称,需要的情况下还可以用意义更明确的名称(相当于再封装一次)。
但是我不得不承认,本方法适用于习惯于寄存器编程的人员,对于只习惯于库函数的人,可能会有一定的门槛,但我认为迈过这道槛对于硬件人员来说是非常值得的。
我目前编程觉得使用这套头文件非常顺手,自己也一直在用,所以分享给大家,仅供同好者参考,希望您多指教,谢谢支持。

我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2019-6-4 21:33:27 | 显示全部楼层
看看学习下
让我们的思维驾驭在电的速度之上!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-5-27
在线时间
3 小时
发表于 2019-6-4 22:20:47 | 显示全部楼层
感谢 分享, 一直在用STM32 却一直没有深入了解过一些东西,最近准备深入学习一下,先生一定是爱好专研
回复 支持 反对

使用道具 举报

0

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2019-5-8
在线时间
16 小时
发表于 2019-6-5 06:05:17 | 显示全部楼层
楼主辛苦了,支持。
回复 支持 反对

使用道具 举报

3

主题

88

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
447
金钱
447
注册时间
2014-3-7
在线时间
49 小时
发表于 2019-6-5 08:05:29 | 显示全部楼层
只用原来的 STM32Fxxx.h就可以了 为何还要自己弄一个?
STM32?步进电机开发板
http://yonyon.taobao.com
回复 支持 反对

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2018-3-29
在线时间
81 小时
发表于 2019-6-5 11:49:54 | 显示全部楼层

学习一下,支持楼主
回复 支持 反对

使用道具 举报

8

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2017-11-24
在线时间
43 小时
发表于 2019-6-5 14:59:17 | 显示全部楼层
感谢大佬分享
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2018-12-12
在线时间
25 小时
发表于 2019-6-5 15:42:29 | 显示全部楼层
非常感谢分享
回复 支持 反对

使用道具 举报

163

主题

300

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1214
金钱
1214
注册时间
2016-5-19
在线时间
297 小时
发表于 2019-6-5 15:43:17 | 显示全部楼层
先看看,记得以前回答过我的问题
回复 支持 反对

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10285
金钱
10285
注册时间
2014-6-12
在线时间
1006 小时
发表于 2019-6-5 15:57:19 | 显示全部楼层
学习一下,谢谢楼主
回复 支持 反对

使用道具 举报

23

主题

79

帖子

0

精华

高级会员

Rank: 4

积分
606
金钱
606
注册时间
2017-8-8
在线时间
144 小时
发表于 2019-6-7 21:35:03 | 显示全部楼层
看看。。。。。。。。
回复 支持 反对

使用道具 举报

9

主题

85

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3830
金钱
3830
注册时间
2014-7-26
在线时间
525 小时
发表于 2019-6-8 13:59:19 | 显示全部楼层
学习下新方法
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2019-6-9
在线时间
1 小时
发表于 2019-6-9 06:58:24 | 显示全部楼层
感谢分享!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-6-9
在线时间
0 小时
发表于 2019-6-9 15:09:32 | 显示全部楼层
888888888888888888888888
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-6-9
在线时间
4 小时
发表于 2019-6-9 16:21:55 | 显示全部楼层
学习一下,谢谢楼主
回复 支持 反对

使用道具 举报

2

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2017-9-27
在线时间
100 小时
发表于 2019-6-10 09:04:42 | 显示全部楼层
好东西,先下载来看看~~
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2014-2-22
在线时间
20 小时
发表于 2019-6-10 10:18:43 | 显示全部楼层
多謝分享
回复 支持 反对

使用道具 举报

0

主题

64

帖子

0

精华

高级会员

Rank: 4

积分
714
金钱
714
注册时间
2012-6-27
在线时间
69 小时
发表于 2019-6-13 14:19:11 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2019-6-13
在线时间
12 小时
发表于 2019-6-13 15:30:12 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2019-6-13
在线时间
0 小时
发表于 2019-6-13 18:33:37 | 显示全部楼层
学习学习~
回复 支持 反对

使用道具 举报

10

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
817
金钱
817
注册时间
2016-2-5
在线时间
163 小时
发表于 2019-6-13 19:54:22 | 显示全部楼层
看看有没有参考的地方
不甘黄土掩枯骨,宁化寒光映碧霄。
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-5-6
在线时间
7 小时
发表于 2019-6-14 16:06:53 | 显示全部楼层
真的很好用
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-5-6
在线时间
7 小时
发表于 2019-6-14 17:35:09 | 显示全部楼层
工程模板主函数里面好像并没有使用这个头文件吧
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2019-4-12
在线时间
10 小时
发表于 2019-6-14 17:43:30 | 显示全部楼层
求密码。
回复 支持 反对

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4416
金钱
4416
注册时间
2018-5-11
在线时间
922 小时
 楼主| 发表于 2019-6-14 19:20:04 | 显示全部楼层
下刀子了 发表于 2019-6-14 17:35
工程模板主函数里面好像并没有使用这个头文件吧

在sys.h里已经包含了,
其它文件只须包含sys.h就可以了。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-6-14
在线时间
11 小时
发表于 2019-6-15 10:42:54 | 显示全部楼层
11111111111111111111111111111111111111111111111
回复 支持 反对

使用道具 举报

2

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2014-1-28
在线时间
44 小时
发表于 2019-6-15 14:25:15 | 显示全部楼层
123654789
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-6-12
在线时间
3 小时
发表于 2019-6-15 15:16:14 | 显示全部楼层
*********************
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-6-3
在线时间
2 小时
发表于 2019-6-16 09:01:25 | 显示全部楼层
太棒了!很实用的东东!
回复 支持 反对

使用道具 举报

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
247
金钱
247
注册时间
2014-10-22
在线时间
40 小时
发表于 2019-6-17 09:34:03 | 显示全部楼层
意义一点都不大
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-5-6
在线时间
7 小时
发表于 2019-6-17 13:27:44 | 显示全部楼层
楼主,如果我用的是别的型号的103,能直接用这个头文件,我用的是中等容量的,
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2019-5-20
在线时间
39 小时
发表于 2019-6-17 17:34:17 | 显示全部楼层
学习一下,2300多行,有毅力!
回复 支持 反对

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4416
金钱
4416
注册时间
2018-5-11
在线时间
922 小时
 楼主| 发表于 2019-6-17 18:44:01 | 显示全部楼层
下刀子了 发表于 2019-6-17 13:27
楼主,如果我用的是别的型号的103,能直接用这个头文件,我用的是中等容量的,

没有问题
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2018-10-6
在线时间
6 小时
发表于 2019-6-17 19:51:23 | 显示全部楼层
111111111111111
回复 支持 反对

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4416
金钱
4416
注册时间
2018-5-11
在线时间
922 小时
 楼主| 发表于 2019-6-19 22:45:49 | 显示全部楼层

谁用谁知道,哈哈。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2018-1-28
在线时间
14 小时
发表于 2019-6-20 08:32:45 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-6-20
在线时间
1 小时
发表于 2019-6-20 08:47:51 | 显示全部楼层
支持支持!!
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2018-2-26
在线时间
19 小时
发表于 2019-6-20 08:54:12 | 显示全部楼层
然而现在不但不用标准库了,还用上了hal库,,,,距离寄存器更远了。。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-6-20
在线时间
4 小时
发表于 2019-6-20 08:54:41 | 显示全部楼层
回复一下
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 05:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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