联系方式

    深圳市英瑞尔芯科技有限公司

    电话:

    186 6591 0262

    E-mail:

    sally@szinter.com.cn

    地址:

    深圳市福田区振华路现代之窗A座7B

把单片机当一个工具

发布时间:2022-09-17 21:57:00

来源:http://www.szinter.com.cn/news868795.html

一般对于 邀请写专栏这种事一般我都是拒绝的.

一来忙得一塌糊涂,二来......如果我有心思写东西, ** 嘛不给自己的公众号写呢?

刚瞅了瞅 @一只树懒 的 这个 嵌入式 专栏,其实说实话,我本来只是想看看丫的这个专栏是不是全写的 ARM LINUX。

后来我发现他写的虽然不多(估计刚开吧),但基本都是STM32。

单片机,很好。

STM32,更好。

看了他的几篇文章,听意思,感觉这哥们是从硬件工程师过来的。

不过我看了他写的STM32学习入门篇,我感觉有点过了,因为惭愧,说实在话,我用了将近十年的STM32,不瞒您们说,我还真的不是十分懂。

尽管对于时钟树抑或什么APB1 APB2 甚至以前还有过什么AHB来着,其实我曾经是懂的,但是,我发现在强大的ST库面前它根本只有被遗忘的份。

就如我大学时,曾把标准8051的所有寄存器和存储器分布等等几乎全部背了下来,但这其实没什么用。

——当然,我其实还是建议学51的人,现在还是可以去这么做一做,聪明人,用笨办法去做一件事,其实是很好的。

但是,STM32你给我背来试试,我要求不高,你把最主流的三个背下来就行

UART GPIO TIMER

不可能的。

STM32F1系列从2007年开始进入市场,随后一路高歌猛进,至今已经被其后辈 STM32F0 STM32F4逐步取代,尽管STM32F1仍然是当今的大主流机型。

相比于51,我们印象最深刻的是,再也不用去看什么寄存器,因为实在太多了。

功能强大了,寄存器自然就复杂,这没什么可说的。

但是为了解决复杂度,我们必须有一定的办法。

软件上我们用了封装,在硬件底层HAL上面我们同样采用了HAL。

当然,至今我仍然不反对 寄存器和ST库并着走,因为ST库,坦白说很多时候还是不是那么如人意,何况,即使如人意,总有需要特殊处理的时候。

但是不得不说,十年来,我基本上都是在用库,而极少极少看寄存器本身。

但这样的好处是,我在切换不同的MCU的时候,基本上是无痕过度,只要懂C语言,只要对MCU的硬件具有足够的共通性理解。

这些共通性理解大概有什么呢?

说起来其实也不多,基本上就是

1.时钟,比如你得知道它的主频,如何分频,倍频,以及能做到的范围;

2.FLASH和RAM的情况,有多大,是否分区之类的。这会在你设置IDE的时候起作用;

然后......好像我也就想不到什么了。

但实在的说,即使这些,ST库,或者说它附带的例程,都已经给你全数提供了,所以你连这都不用操心。

当然不止ST,事实上,自从ST开了这个先河,后来的绝大多数主流MCU,都这样,因为你不这样做,客户学习和迁移的成本太大,除非你是FREESCALE或者NXP这一类在某些场合(比如车规)有强制要求的场合下,谁愿意用你的产品?

所以说,其实现在,学单片机,这件事情,已经变得很简单。

只要你懂C——这方面最好懂得越多越好。

然后只要你曾经有过一两个实际的使用经验,而且你也没有被限制不能使用盗版的IAR或者MDK——当然如果有人帮你给钱更好,理直气壮。

基本上,可以说,你在转向任何一款MCU的时候,都是很轻松的。

然后,你真的不必太关心它的什么时钟树啊内里的外设寄存器啊。

相信库函数,绝大多数时候,它们都挺好的,而且比你写的好。

毕竟它们是由芯片制造者提供的。

回到题目。

尽管把单片机当一个模块用好了。

虽然,对于非程序员用户,尤其是非C程序员用户而言,它肯定没有Arduino简单易用。

但也真的没有必要回到以前8051的时代,苦逼去拼凑设置寄存器,那个,早就过时了。

事实上,如果或者一个团队里,你连硬件都别碰。

什么最小系统关我毛事,直接,见着谁卖的多逮谁,见着谁便宜(当然是要满足使用要求)就用谁。

要相信市场的选择。

以上,OVER。

相关标签: