如何学习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()函数中,设置了相关的时钟,

。。。。。。。。。。。。。。。。。。。

讲这么多,我就是想表达一个意思:

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

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

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

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

  3. 库函数手册

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

  5. 百度,和论坛。

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

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

文件夹中布局

keil中布局

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

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

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

最后

st官网下载资料

DJI Robomster 嵌入式交流

固件库详细解析

电子发烧友

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

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

  1. STM32学习笔记1.2 STM32的开发方式——写给电信学部学生科技协会的朋友们

    你如果用过Arduino,应该对一个蓝绿色的C语言编程界面非常熟悉.你在里边写了一个叫做"Setup"的函数--在里边运行对各种外设的初始化函数,又写了一个叫"Loop& ...

  2. STM32 FSMC学习笔记+补充(LCD的FSMC配置)

    STM32 FSMC学习笔记+补充(LCD的FSMC配置) STM32 FSMC学习笔记 STM32 FSMC的用法--LCD 转载于:https://www.cnblogs.com/LittleTi ...

  3. 【STM32】学习笔记RTC日历基础应用问题分析

    ▲ 点击上方 关注STM32 RTC,Real_Time Clock,即实时时钟,在许多电子系统中都能看到实时时钟的存在. 今天是第6篇分享,<STM32学习笔记>之RTC日历基础应用问题 ...

  4. STM32的学习记录--单个模块开发思路

    1. 前言 很久没写STM32的学习博客了,不是因为没在搞,而且因为STM32要学习的部分太多,而且代码量太大了,有些代码还涉及到版权问题,就一直没写,最近刚好在搞一个智能设备有关WiFi模块的开发, ...

  5. STM32之学习总结(正点原子精英版V1,不定时更新)

    前言:保姆级教程,帮你在学习路上畅通无阻,从学习资源整合到板子使用开发注意事项,到环境搭载,单片机基本知识介绍,有AD的设计功底,有51单片机的基础,有15单片机的项目开发经验,案例代码模块学习记录, ...

  6. Proteus STM32仿真学习板

    一 全球IC爆冷,价格猛涨,ST系列单片机更是一马当先,贵到你怀疑人生.这个时候想学习STM32的基础去购买开发板是很不划算的,而且用完就搁置了,吃灰到永远,能半价甩卖就已经很好了. 为了让大家方便快 ...

  7. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础

    上篇文章 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程 仅介绍了入门程序及其编译运行过程,下面开始对stm32的一些基础知识做一个记录. 1.stm32f103zet6(上篇问题3 ...

  8. 高手入门STM32总结+学习步骤

    一.入门总结 1.1为什么要把时间花在"犹豫"上? 每当我们在入门之前(ARM是这样,DSP也一样),总会有很多疑问,会有很多顾虑.我们渴望知道学习STM32前景如何?需要啥基础? ...

  9. 最实惠又容易上手的STM32的学习板,你确定不了解一下吗

    最实惠又容易上手的STM32的学习板,你确定不了解一下吗 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺 ...

最新文章

  1. php 开发cs,PHP开发CS结构的技巧
  2. 用简单的方法构建一个高可用服务端
  3. Asp.net采集用到的幾個方法
  4. ccBPM典型的树形表单和多表头表单的流程示例
  5. java 虚类_java虚方法
  6. python中为什么没有自增或者自减
  7. IIS下PHP的ISAPI和FastCGI比较
  8. 人工与计算机解决问题的异同,1.1计算机解决问题的过程ppt课件 .ppt
  9. mouseover和mouseenter的区别
  10. 第七章读书笔记《深入理解计算机系统》
  11. Android手机如何修改Mac地址,安卓手机怎么修改mac地址
  12. 平均值、中位数、众数等统计特性的matlab求解与示例
  13. html中显示框框中对勾,word对号怎么打 word怎么设置在方框里打对号
  14. h5 页面唤起微信和qq
  15. 16. FizzBuzz
  16. 腾讯视频投屏显示无法连接服务器,腾讯视频投屏不能快进
  17. ps考试引擎安装溢出屏幕
  18. 计算机串口连接原理,串口通信的原理及USB转串口通信
  19. javascript下载文件几种方式,接收后台返回流下载或直接下载文件
  20. 计算机联锁设计方案,设计方案实验3计算机联锁软件设计方案.docx

热门文章

  1. 如何为自己的网站生成SSL证书
  2. 如何利用TFTP协议发动DDoS放大攻击
  3. 余三码和余三循环码的简单理解
  4. Redis实现的布隆过滤器如何快速有效删除数据
  5. Redis常用操作之批量删除keys,和清空整个数据库
  6. supervisor> restart bili:create_bili_index bili:create_bili_index: ERROR (not running) bili:create_b
  7. Asp.Net CRM客户关系管理系统
  8. 推荐几个超有趣的公众号
  9. 工业4.0时代 个性化定制掀起制造业新篇章
  10. 喜讯!双驰企业正式成为欧盟地平线2020 项目合作伙伴