stm32的软件架构问题
1、 架构组成:程序代码分为四种结构
a) 顺序执行代码
定义:按照顺序逐行执行的代码
优点:是思路简单,代码可靠不易被干扰。
缺点:占用资源
用途:只用来各种变量、函数的定义,硬件的初始化程序
位置:main.c的开始一直到main函数的while函数之前
b) 空闲执行代码
定义:在CPU空闲的时候才执行的代码
优点:不占用资源
缺点:执行的实时性不能保证
用途:非实时任务,调试信息输出,不重要的状态指示
位置:main.c的main函数的while函数内部
c) 中断执行代码
定义:由软硬件事件打断整个程序而执行的代码
优点:可以保证实时性,各种中断可以安排优先顺序
缺点:关系相对复杂,互相之间容易干扰
用途:触发性的代码,比如接收数据,响应外部设备,按钮的相应
位置:stm32f10x_it.c内部
d) 循环执行代码
定义:按照时间周期执行的代码
优点:定期自动执行
缺点:实时性不好
用途:需要周期执行的任务,状态检查及相关信息输出,数据记录
位置:stm32f10x_it.c的SysTickHandler内部
e) DMA自动代码
定义:不需要主程序干预,外设自动执行
优点:自动刷新数据,不占用CPU资源
缺点:不能控制
用途:数据通信存储,AD转换
位置:不需要
stm32的软件架构问题的更多相关文章
- STM32库函数编程、Keli/MDK、stm32f103zet6
catalogue . Cortex-M3地址空间 . 基于标准外设库的软件开发 . 基于固件库实现串口输出(发送)程序 . 红外接收实验 . 深入分析流水灯例程 . GPIO再举例之按键实验 . 串 ...
- stm32开发之标准库的介绍
1 STM32标准外设库概述 STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序.数据结构和宏组成,包括了微控制器所有外设的性能特征.该函数库还包括每一个外设的驱动描 ...
- STM32固件库详解
STM32固件库详解 emouse原创文章,转载请注明出处http://www.cnblogs.com/emouse/ 应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板 ...
- (一)STM32固件库详解(转载)
本篇博文是转载自emouse,因为不能直接转载,所以是复制过来再发布的. emouse原创文章,转载请注明出处http://www.cnblogs.com/emouse/ 1.1 基于标准外设库的 ...
- 【STM32系列汇总】小白博主的STM32实战快速进阶之路(持续更新)
我把之前在学习和工作中使用STM32进行嵌入式开发的经验和教程等相关整理到这里,方便查阅学习,如果能帮助到您,请帮忙点个赞: 本文的宗旨 STM32 只是一个硬件平台,同样地他可以换成MSP430,N ...
- STM32试题及答案
一.选择题 1.Cortex-M处理器采用的架构是( D ) (A)v4T (B)v5TE (C)v6 (D)v ...
- ucos实时操作系统学习笔记——操作系统在STM32的移植
使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...
- [转] STM32各种时钟的区别
[原创]:http://m.oschina.net/blog/129357 我在原创的基础又从另一位博主处引用了一些内容. 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是 ...
- [转载]:STM32为什么必须先配置时钟再配置GPIO
转载来源 :http://blog.csdn.net/fushiqianxun/article/details/7926442 [原创]:我来添两句,就是很多同学(包括我)之前搞低端单片机,到了stm ...
随机推荐
- 项目解析- JspLibrary - part2
banner.jsp 验证用户是否登录 <%String manager=(String)session.getAttribute("manager"); //验证用户是否登 ...
- java 多线程6(线程的·通讯)
问题1: 为什么wait() 和 notify()是Object类中的方法,而不是Thread类中的方法呢? 答:因为锁是任意对象的所以要在Object类中,如果在Thread类中锁对象不是任意的了. ...
- eclipse配置tomcat,访问http://localhost:8080出现404错误
问题:通过eclipse来启动tomcat会碰到“访问http://localhost:8080出现404错误”这样的问题,需要在eclipse中进行一系列的设置才行. 解决:打开eclipse的s ...
- 一个比较全面的java随机数据生成工具包
最近,由于一个项目的原因需要使用一些随机数据做测试,于是写了一个随机数据生成工具,ExtraRanom.可以看成是Java官方Random类的扩展,主要用于主要用于测试程序.生成密码.设计抽奖程序等情 ...
- VS2012外接程序VMDebugger未能加载或导致了异常
转http://blog.csdn.net/maryhuan/article/details/42676915 故障现象:打开Visual Studio 2010后弹出错误框,外接程序VMDebugg ...
- HIbernate实现增、删、改、查。
//大配置 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC " ...
- Pinyin4Net
.net使用的汉字转拼音库.Pinyin4Net 是直接从 Pinyin4J 翻译过来的,很多代码甚至是直接copy的. 用法与pinyin4j完全相同,具体请查阅pinyin4j文档. —— 查看更 ...
- prepareStatement和Statement的区别
1:创建时的区别: Statement stm=con.createStatement(); PreparedStatement pstm=con.prepareStatement(sql ...
- 服务订单SO创建
FUNCTION Z_SD_SALESORDER_CREATE. *"------------------------------------------------------------ ...
- Objective-C:Foundation框架-概述
iOS的整体架构(以iOS8为例)图如下: 从Cocoa Touch到Core OS下面四层包含了开发iOS应用程序所用到的所有API(第三方框架也是基于这几个层的).每个层又都包含了许多框架.框架就 ...