当前位置: 首页 > news >正文

STM32重拾+找工作MD

1.工程文件创建

外部的文件夹要和工程文件对应,也就是外面创建好之后,里面也要对应添加;

首先是startup启动文件,这个是程序执行最基本的文件,keil中启动文件是用汇编写的,启动文件内定义了中断向量表,中断服务函数等。(操作系统的系统调用(用户态到内核态转换)也是通过中断来实现的)中断指令会转向执行对应的中断处理指令,这些指令再内核态下面;

这个中断函数中有个复位中断,这就是整个程序的入口,当stm32上电复位或者按下复位开关之后,程序就会进入复位中断函数执行。

复位函数中断就主要做了两件事情,第一个是调用SystemInit函数,

SystemInit函数就是定义在System_xx开头的.c里的,在keil里也可以看到这个函数的定义(在main函数之前,单片机就已经执行了一堆东西了,帮我们把闪存接口,时钟等一系列杂碎的东西都配置好了)。

第二个是调用main函数,然后程序就结束了。

另外在启动文件还定义了stm32所有的其他中断,这些中断达到触发条件后就会自执行。**其他中断函数的定义就是在stm32fx_it里面的。**以上就是中断部分的逻辑。

另外,你也可以自己定义一些用户文件,来封装一些模块供主程序和中断调用,有利于程序结构的模块化,要不然所有的程序都在主函数里,那主函数就太长了。

这个工程结构主动执行的部分就介绍完了

对应启动文件如下所示:

2.被动执行部分(工程架构右1图)

被动执行部分,相当于stm32的资源了,我们在主函数或者中断函数里,就可以调用这些资源,

右上角这两个stm32f10x.h和core_cm3这些文件就是外设和内核外设的寄存器描述,

在keil可以看到,都是寄存器和寄存器名字,还有地址信息等,如果直接调用这些寄存器来使用stm32,那就是寄存器的开发方式,很麻烦。

所以就提供了库函数文件,在keil中可以看到,这每个外设都提供了一大堆函数,这些函数封装了寄存器的操作,给我们提供更加人性化的函数调用方式。

所以在使用这些库函数时,**我们只需要包含stm32f10x.h这一个头文件,就相当于包含了所有的库函数头文件,**这样我们就可以任意地调用库函数了。

 


http://www.mrgr.cn/news/54679.html

相关文章:

  • 提升小学语文教学效果的思维导图方法
  • idea中文国际化转码
  • MyBatis入门程序之客户添加、更新与删除
  • Python+Flask接口判断身份证省份、生日、性别、有效性验证+docker部署+Nginx代理运行
  • 如何使用Git推送本地搭建的仓库以及远程克隆的仓库
  • ApacheShiro反序列化 550 721漏洞
  • Java 多线程(四)—— 线程安全 与 volatile 与 单例模式
  • JavaScript中实现十进制转二进制算法
  • 项目模块五:poller模块
  • 智能工厂的软件设计 三个单词( link/relation/chain):自然语言的此一字库stock、形式语言的彼多字扇fan到人工语言的专有名词 之1
  • python 更换pip源
  • V2X介绍
  • 程序化交易中,如何编写盈利回撤一半平仓的策略?
  • DGCNN代码详解(一)
  • stm32实现esp8266连接到TCP服务器(二)未完
  • 如何打开CMD界面?打开CMD界面有几种方式
  • Chromium html<lable>c++接口定义
  • 3、面向对象之封装与继承(找工作版)
  • 【OD】【E卷】【真题】【100分】流浪地球(PythonJavaJavaScriptC++C)
  • python 模块 输入与输出
  • 探究互联网数字化商品管理变革:从数据化到精准运营的路径转型
  • Leaflet地图中实现绘图(点、线、多边形、圆等)功能
  • 美学心得(第二百六十八集) 罗国正
  • 机器学习【工业高精度计算及其应用】
  • C++头文件大全及解释(补丁)
  • 一 、揭秘操作系统架构:从整体式到微内核的技术演变