一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 6738|回复: 27
收起左侧

[STM8/STM32] 学习STM32有感: 寄存器开发实际比库开发容易!

[复制链接]
发表于 2015-7-20 14:47 | 显示全部楼层 |阅读模式
本帖最后由 sunny20 于 2015-7-20 14:54 编辑

学完了8位的51系列单片机,本人最近着手学习32位系列单片机STM32了,之前只是听说过这个产品,但是实际怎么样没有见过。后来51实在玩厌了,因为研究越深入,其实越没兴趣了,接着听说了32位的ARM核心的STM32单片机功能很强大,于是花了200大洋买了仿真器、开发板、笔记本开始学习。其实本人很忙,白天忙于工作,一般晚上才有时间。经过网上了解,STM32还真是很复杂,寄存器一大堆,大部分都是32位的寄存器,网上大部分都是所谓的库开发教程,本人买的教材也是以库开发为基础的。学习了接近1个月,感觉库开发必须了解库函数的原形,甚至有时得深入了解它的底层才能知道怎么用,而且不同的版本使用方法也不一样,很是头痛!经过本人近一个月的研究,其实keil这个软件已经帮我们做了很多工作,根本不用去搞什么库函数,而且keil这个软件里面提供的寄存器操作简单易用,通俗易懂!
keil里面提供了STM32F10x.h这个头文件,里面包含了STM32各种寄存器的结构体定义,并且提供了很多直接对寄存器操作的宏定义,十分方便!如下图是本人写的一个利用滴答定时器使LED以500ms闪烁的程序:其中的SystemInit函数是参考网上的,部分自己修改了一下,其它是自己研究写出来的,有注释。
捕获1.JPG 捕获3.JPG

从以上可以看出,全部采用自己操作寄存器,不但效率高,操作也简单,keil提供的头文件已经足够应付,无需深入了解库文件,建议初学者直接学寄存器开发!
发表于 2015-7-20 14:54 | 显示全部楼层
楼主也是菜鸟一枚!库开发和寄存器开发各有优势!只能说你还没从8位机开发的编程意识形态转换过来
发表于 2015-7-20 15:00 | 显示全部楼层
我这段时间也是在学习stm32单片机,首先学习的是寄存器版本,感觉理解起来还是很ok的,但是想想要一句句的从零写起,头都疼————
 楼主| 发表于 2015-7-20 15:53 | 显示全部楼层
wanjinjie 发表于 2015-7-20 14:54
楼主也是菜鸟一枚!库开发和寄存器开发各有优势!只能说你还没从8位机开发的编程意识形态转换过来

菜鸟能用别人看着都头痛的寄存器就好,我凭什么别人要用库开发就我一定要?真是的!
发表于 2015-7-20 16:02 | 显示全部楼层
寄存器开发实际比库开发容易,应该适用简单外设吧。

如果操作串口、SPI之类高级一点的外设,根本记不住那么多寄存器。如果用库,几年前的东西拿出来,马上就能搞了。
发表于 2015-7-20 16:37 | 显示全部楼层
像最新的HAL库,可以对硬件抽象,移植到各个型号基本不需要修改
发表于 2015-7-20 16:44 | 显示全部楼层
配合STM32CubeMX,像你这个led闪烁,只需要自己加2行代码就行了

HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);
HAL_Delay(500);

其他的IO设置都可以在STM32CubeMX中图形化配置好
发表于 2015-7-20 17:34 来自手机 | 显示全部楼层
楼主的程序基本没有可读性可言。估计不要说半年,1个星期后都已经忘了某句话是什么意思。来自: iPhone客户端
发表于 2015-7-20 18:16 | 显示全部楼层
如果靠点灯来判断库和寄存器优劣的话,我只能呵呵了。。。。建议楼主试试stm32的can,,,,,搞完了之后再说哪个好。。其实好与不好只是相对,主要是方便就行。。。
发表于 2015-7-20 18:31 | 显示全部楼层
本帖最后由 aa7812 于 2015-7-20 18:45 编辑

如果是工控之类, 底层操作是比较方便, 刚开始用一种新的单片机, 肯定需要先熟悉寄存器的操作,对单片机的硬件结构有一个大概的了解。使用多了,可以逐步选择一些比较高层次的编程工具(库函数),编程工具越高级, 编写程序就越方便, 当然, 熟悉一个高级编程工具,也是需要相当长的时间。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-26 20:20 , Processed in 0.074624 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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