【STM32单片机入门】学习资源推荐,学习经验分享

【STM32单片机入门】学习资源推荐,学习经验分享,第1张

提示:本人大一开始接触stm32单片机,在此之前先学习了51单片机,因此本文主要针对于学过51单片机的朋友们分享。另外如果有觉得讲的不对的地方,欢迎指出。

如果想要直接得到学习资源请转至文章后半部分

文章目录
  • 前言
  • 正文
    • 一、51单片机和32单片机的异同
      • 1.异
        • (1)51单片机点灯实验:
        • (2)stm32单片机点灯实验:(使用库函数)
      • 2.同
    • 二、学习的资源分享
    • 三、学习的注意事项


前言

如果你学过51单片机,那么将会感觉stm32单片机的学习和51单片机的学习比较起来会有比较大的差异,具体的差异我将会在后文指出。不过你也不用因这种差异而感到担忧,看完我下面的分享,你将豁然开朗。


正文 一、51单片机和32单片机的异同 1.异

这种差异主要来自于他们的内核不同,另外32的外设比51更多,故 *** 纵起来更加复杂。
例如:51上面输出pwm波形,需要启用定时器,然后在定时器中断服务函数里面添加判断,来控制某个引脚输出的高低电平,虽然逻辑看起来比较简单,但是与32比起来却相差甚远。而32只需要启用定时器,然后使用一个可以输出pwm的模式(输出比较模式),然后设置好pwm波的占空比,周期和分辨率即可。

学过51单片机的朋友们都知道,对IO口的调用只是简单的写上p几p几口然后输出高低电平即可,但是对于32单片机IO口的 *** 控并不是那么简单。下面我将会举例来说明。(这里拿代码出来只是为了对比)

(1)51单片机点灯实验:
//51单片机点亮一个led灯的代码,P21口
#include 
void main()
{
	while(1)
	{
		P21=1;
	}
}
(2)stm32单片机点灯实验:(使用库函数)
//stm32单片机点亮一个led灯代码,PC13口
#include "stm32f10x.h"                  // Device header
int main()
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能相应的时钟
	GPIO_InitTypeDef GPIO_InitStructure;//重新定义结构体
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//配置引脚模式
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;//设置要调用的IO口
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置IO的速率
	GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化IO口
	while(1)
	{
		GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);//将相应的IO口下拉至低电平
	}
}

通过以上“点亮一个led灯”实验的代码量可以看出,不论是从代码量还是调用方式上,两者均截然不同。

2.同

两者在代码方面确实不同,但其底层却是一样是对寄存器的 *** 作,所以对于32单片机同样可以使用寄存器来 *** 作,这一点大可放心,但是相较于使用库函数来玩32,寄存器的 *** 作就略显麻烦了一些。所以我大部分时候还是使用库函数来玩32,除非某些时候用寄存器来 *** 作更加简单。
另外,正常情况下使用的软件也是可以不用换,只需要更新一下就可以,具体看实际情况。

这里的异同说的比较简单,如果想要更加深入了解,请移步至链接: stm32和51的区别.

二、学习的资源分享

我不论是学习51还是32 都是看的B站 的江科大自化协的,这里附上链接
链接: STM32入门教程-2022持续更新中.
个人感觉江科大的讲解比正点原子和野火等的讲解更加清晰明了,对于新手非常友好,他是带着我们一步一步来学习单片机,教我们怎么安装软件,教我们怎么新建工程,教我们一段一段来敲代码的。当然可以用其他人的视频来当做对江科大视频的补充学习。
遇到的一些编译报错情况,可以将报错内容复制到CSDN上面,一般情况都会有解答。
在学习32之前,有必要将C语言学到结构体那一部分,将会有利于你理解代码。
当然这是个人的推荐,具体看个人爱好习惯。

三、学习的注意事项

1.连续的学习,在看视频的时候认真,最好抽一段连续的时间来学习一个部分的内容,最好不要中间断开,这样有利于构建一个完整的该部分的知识体系。
2.勤于动手,看视频时候不要忘记自己动手跟着视频一起敲代码,因为江科大的视频基本都会带着我们一起手打代码,所以最好跟着视频一起敲。这样有利于加强我们对该部分知识的记忆和理解,同时会有一定的成就感。形成正反馈,从而促进我们学习。
3.勤于查资料,遇到问题就及时搜查资料去解决问题,不要等到最后漏洞越来越多再去补就很困难了。
4.在学习到一定程度后,因个人情况可以做出一点小的项目出来,将所学运用到实践。实践的过程中我们会遇到许多问题,我们可以通过不同的方式来解决问题,提高我们解决问题的能力。例如我在学完51后做了一个麦轮小车,学了一些32后又做了一个四轮的小车。做完后很有成就感,同时又对以前所学有了新的了解。在不断的学习与试错中前行。

… …

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/707498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存