如何学习stm32,怎么学习stm32,不是仅仅看教程,照着写复制代码

如何学习stm32

好多人学习stm32 就是看视频,我的意思也不是看视频不对,看视频的确能够快速的让我们用上stm32的那些功能,即使我们不会懂其中的原理,但是当你学着学着你就感觉越来越恼火了,没有那些参考就不知道如何来处理,为什么呢?

不知道有没有小伙伴有没有这样的感觉,就是看人家写代码就知道怎么按某些步骤写下去,但是到了自己就不知道怎么办了,完全没有头绪…
在这里插入图片描述
eg:STM32f103PC13脚。
就像开启一个GPIO,来点灯

  1. 开启对应gpio的时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
  1. gpio初始化,初始化前你学要定义好结构体GPIO_InitTypeDef
    GPIO_InitTypeDef GPIO_InitStructure;
    
    GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin  =GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
  1. 然后初始化GPIO.
	GPIO_Init(GPIOC,&GPIO_InitStructure);
	GPIO_SetBits(GPIOC,GPIO_Pin_13);  //这句可以不要

4.然后在主函数调用初始化函数,对其进行初始化。
5.最后是使用 GPIO_ResetBits(GPIOC,GPIO_Pin_13);就可以点亮一颗灯了。
具体如图:(图中没有把它点亮,在主函数中加入led_on();就可以点亮灯了)
具体文件

看到这里,小白觉得,哇!这么简单就点灯了!大佬觉得这么简单你也说,这么简单谁学一下也会啊!关键和标题有啥关系,标题党,死狗,想盘我!

重点来了

  • 上面看着简单,但是我们不禁会想:他到底是怎么实现的?
  • 为什么我们要开启时钟。
  • 为什么我们要初始化GPIO。
  • 结构体里的那些值怎么来的,不同值有什么不同?
  • 那个 GPIO_ResetBits(GPIOC,GPIO_Pin_13);又是哪来的???

很多教程都教你这么干,说配置时钟,配置寄存器…但是连你自己都没有试试没个的下效果,建议你去试一试。

1.首先必要的基础你应该了解

  • GPIO是什么。
  • 寄存器是怎样的。
  • RCC_APB2PeriphClockCmd,时钟线的来源
    时钟树
    (有人回想为什么是APB2呢?这是你就需要查stm32Fxxxx参考手册了),那前面的那些不用初始化吗?时钟有几个?怎么了处理??其实前面的系统函数已经完成了,具体在哪看下面。
     /*进入主函数前已经完成微控制器时钟设置, 这是通过从启动调用的SystemInit()函数完成的文件(startup_stm32f10x_xx.s)之前分支到应用程序main。要重新配置SystemInit()函数的默认设置,请参阅system_stm32f10x.c文件*/

可以看到,SystemInit比mian先run。
启动文件中
在SystemInit()函数中,设置了相关的时钟,
SystemInit
。。。。。。。。。。。。。。。。。。。
point
讲这么多,我就是想表达一个意思:

点灯要点的有意义,弄懂基本概念与原理,为什么要这个样子。一步步慢慢来,不然你永远就只有复制代码,能实现但是不懂为什么是这样子的。

2.那我们如何一步步的去弄明白呢?

  1. 时不时看看基础 c语言.
    C语言学习网站

  2. 前面已经说了一个《参考手册》,必备资料。
    参考手册

  3. 库函数手册
    库函数

  4. 还有一个最重要的那就是:stm32f10x_stdperiph_lib_um.chm(很多人都没有在意这是啥?这就是你们下载的标准库里面的说明文档,就是教你如何使用的,虽然是英语的,但是这个教你如何去使用每一个外设。)
    stm32f10x_stdperiph_lib_um.chm

  5. 百度,和论坛。

  6. 多看看别人的代码,多自己敲敲代码。写代码要规范

  7. 从创建工程开始,每一个驱动函数最好自己上下手。(创建工程也要规范弄清楚每个部分)eg:

文件夹中布局
文件夹布局
keil中布局
keil中布局

  1. 观看视频,一定要动手撸代码
  2. 干几个项目,这样才能逼着你成长。

以上代表个人的看法,可能我写的没那么好,但是请记住:

知其然,更要知其所以然。

最后

st官网下载资料

DJI Robomster 嵌入式交流

固件库详细解析

电子发烧友

stm32是挺恼火的吗,但是我们chinese people so niubi 。在新的佩奇年里,我们会更好。为伟大中国梦而奋斗!
佩奇加油

  • 143
    点赞
  • 480
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值