您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 
 订阅
【嵌入式基础&常识】单片机
作者: 知立
  1015  次浏览      19 次
 2023-7-19
 
编辑推荐:
本文主要介绍单片机的一些常识,其次介绍单片机的内部功能,最后介绍实际编程的实践,希望对您的学习有所帮助。
本文来自于CSDN,由火龙果软件Alice编辑、推荐。

一、应该知道的常识

1.ARM(内核)

ARM:是一个模糊词,它可以代表ARM公司、ARM内核=ARM处理器。

内核和框架:框架像原理图,内核像PCB,一种框架可以画多个版本PCB。

ARM处理器 :英国ARM公司设计了ARM处理器,我们通常说的ARM就是指ARM处理器。ARM处理器只是众多中央处理器- (CPU)中的一种。

Cortex 处理器:Cortex是ARM公司一个系列处理器的名称。例如:cortex M0 M3 M4 M7

2.单片机=MCU=微控制器(芯片)

单片机:是集成电路芯片。包含了中央处理器CPU(例如32单片机包含了ARM处理器)、RAM、ROM…

STM32单片机:是意法半导体公司设计的嵌入式单片机。(单片机型号有:STM32 F0 F1 F2 F3 F4 F7 H7)。CPU采用的是ARM处理器。(STM32F1采用cortex-M3内核、F4采用cortex-M4内核、F7采用cortex-M7内核、H7采用双核M7+M4)

3.电路板(板卡)

4.嵌入式系统(应用)

嵌入式系统最大的特点是根据产品的需要设计功能,没有过多的功能,最大限度降低成本。低成本+高性能,所以才有那么多低端的单片机,成本低,但能满足产品需求。

嵌入式系统 = 单片机板卡 + 嵌入式操作系统 。(不一定非要操作系统,一切都是为了低成本,便开发)

5.CPU性能

DMIPS、MIPS:都是用来测试CPU的几种不同方法不同程序,仅供参考,不能全信。

8.倍频、分频

倍频:把外部晶振频率提升到CPU需要的高频率。

分频:把高频降下去,给单品机其他部分提供不同的频率。

PLL:倍频器。锁相环。

Prescaler:预分频器。

9.TTL和CMOS电平

电平就是人为规定的一种规则,用01逻辑信号代表高低电压信号。

常见的电平类型:TTL、CMOS、LVTTL、LVCOMS、RS232、RS485等

TTL:VCC=5V。

LVTTL(Low Voltage):VCC=3.3V。VIH>=2V,VIL<=0.8V。

TTL输入引脚悬空时,默认高电平。

CMOS:VCC=+5~+15

不同系统相连,比如单片机、DSP、FPGA等,需要查下手册,看看电平定义。

10.常见编译错误 ?

11.仿真器

程序下载到仿真器里,不是Flash里。没用过

12.精简指令集

指令集:软件和硬件转换的点。

精简指令集和复杂指令集,电脑是复杂指令集,硬件比较庞大复杂功耗大。

ARM处理器是32位(兼容16位)精简指令集。

13.ST、ARM官网

ST官网: link

通过看公司官网能看出他是做啥的,面向的客户是谁。

ST就是面向开发者,官网资料多一些,页面也比较友好。ARM就是面向芯片工厂,官网感觉就不太友好。

14.STM32命名规则

ST代表公司名。M代表微处理器。32代表ARM32位处理器。F表示性能。103系列。后面几位表示引脚数、内存大小、封装类型、工作温度。

总结:STM32F103几位就决定了一款芯片。C8T6几位决定其引脚数和内存大小等。

15.阅读芯片手册

先浏览目录标题,看下有些什么东西。

主要还是图表

11页:单片机内部模块框图

12页:时钟树

13页及后面:引脚图

读图:梯形是选择器、粗线是总线、细线是单引脚、线内为单片机内部。

16.软件和硬件如何联系

软件就是指用户程序,目前有寄存器、库函数、HAL库三种。不论哪种,最终都是在操作 地址和状态,最终操作单片机。

SRAM里有单片机内置的功能配置寄存器,最终去操作硬件。

详细查看数据手册 存储器映像、寄存器地址表。

 

17.程序下载到SRAM还是FLASH

一开始,代码、常量、全局变量 都是下载到flash里的。

然后程序开始运行后,全局变量就到sram里了,代码和常量还在flash里

参考大佬文章:https://blog.csdn.net/yangkuiwu/article/details/78219995

二、单片机的内部功能

(第一部分的图都放最后,试试第二部分插在文章中间,之前感觉插入图会很乱,现在感觉没有图太抽象)

0.将单片机内部功能划分为三部分

核心功能:内核、存储器、时钟。(类似电脑的CPU、内存条、硬盘)

重要功能:外设。

附加功能:CRC、芯片号。

1.核心功能:内核

采用ARM32位处理器,cortex-M3。最高工作频率72MHz。

2.核心功能:存储器

SRAM和FLASH。STM32F103中等容量系列,64K或128K的FLASH,20K的SRAM。

两者主要区别是:掉电能否保存、速度快慢。

3.核心功能:时钟

HSE外部高速晶振振荡器:4~16MHz,用作系统时钟。

LSE外部低速晶振振荡器:32khz,用于RTC。

HSI内部高速RC振荡器:8MHz,用作系统时钟。

LSI内部低速RC振荡器:40KHz,用于RTC。

总结:外接的精准,但贵。

时钟分类:内核与外设时钟、独立时钟

4.重要功能:低功耗

5.重要功能:ADC

2个12位ADC,共用16个外部通道。

可以使用DMA

6.重要功能:DMA

7通道DMA,支持外设有定时器、ADC、USART、I2C、SPI。

7.重要功能:GPIO

I/O:input和output。引脚不等于IO,IO指的是能输入输出的引脚,引脚还包括电源脚之类。C8T6有48个引脚,其中37个IO口。

GPIO:32里的定义。就是通用IO口。

输出电流最大:8ma,输入电流最大:20ma。所以对LED的驱动方式就有推挽驱动和灌电流驱动,关电流驱动就会更亮一点。

32里输入输出方式有:

四种输入:模拟、浮空、上下拉。

四种输出:推挽、开漏,复用推挽、开漏。(推挽是大电流输出,有驱动能力,开漏无驱动能力。)

8.重要功能:调试

有SWD和JTAG,是内嵌在ARM内核里的。

9.重要功能:定时器

7个定时器,3个普通16位,1个高级16位,2个开门狗12位、7位,1个嘀嗒定时器。

10.重要功能:通信接口

9个通信接口,3个USART、2个I2C、2个SPI、一个CAN、一个USB2.0。

USART1 通信速率4.5M每秒,另外两个2.25。

I2C通信速度:

SPI通信速度18M每秒。

CAN通信速度1M每秒。

USB通信速度12M每秒。

11.RTC

12.NVIC

13.EXTI

14.自举模式

正常情况都是从FLASH启动。ISP下载时从系统启动。调试时从SRAM启动,下载程序快,但是断电丢失。

15.附加功能:CRC

CRC用于数据正确性的校验。

16.附加功能:芯片号

每个芯片有一个唯一的96位的序列号。

三、实际编程

0.软件准备

keil5、Jlink驱动

1.需要会的C知识

#if #endif

enum

char8 int16 long float32

typedef

struct

32位MCU下,字=4字节

2.工程文件

3.

   
1015 次浏览       19
相关文章

一文了解汽车嵌入式AUTOSAR架构
嵌入式Linux系统移植的四大步骤
嵌入式中设计模式的艺术
嵌入式软件架构设计 模块化 & 分层设计
相关文档

企点嵌入式PHP的探索实践
ARM与STM简介
ARM架构详解
华为鸿蒙深度研究
相关课程

嵌入式C高质量编程
嵌入式操作系统组件及BSP裁剪与测试
基于VxWorks的嵌入式开发、调试与测试
嵌入式单元测试最佳实践

最新活动计划
面向对象业务分析与系统设计 10-16[线上]
嵌入式软件架构设计-高级实践 10-17[线上]
Qlik Sense数据分析技术 10-17线上]
基于 UML 和EA进行分析设计 10-22[北京]
用户研究与用户建模 10-24[北京]
QT应用开发 10-24[北京]
 
 
最新文章
基于FPGA的异构计算在多媒体中的应用
深入Linux内核架构——简介与概述
Linux内核系统架构介绍
浅析嵌入式C优化技巧
进程间通信(IPC)介绍
最新课程
嵌入式Linux驱动开发
代码整洁之道-态度、技艺与习惯
嵌入式软件测试
嵌入式C高质量编程
嵌入式软件可靠性设计
成功案例
某军工所 嵌入式软件架构
中航工业某研究所 嵌入式软件开发指南
某轨道交通 嵌入式软件高级设计实践
深圳 嵌入式软件架构设计—高级实践
某企业 基于IPD的嵌入式软件开发
更多...