50条STM32单片机学习笔记

发布者:王岚枫最新更新时间:2021-06-10 来源: eefocus关键字:STM32  单片机  学习笔记 手机看文章 扫描二维码
随时随地手机看文章

1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备


2、Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用


3、HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8MHz,HSI RC(High Speed InternalRC)高速内部RC,8MHz


4、LSE Osc(Low Speed External Oscillator)低速外部晶振,一般为32.768KHz,LSI RC(Low Speed InternalRC)低速内部晶振,大概为40KHz左右,提供看门狗时钟和自动唤醒单元时钟源


5、SYSCLK时钟源有三个来源:HSI RC、HSE OSC、PLL





6、MCO[2:0]可以提供4源不同的时钟同步信号,PA8



7、GPIO口貌似有两个反向串联的二极管用作钳位二极管。




8、总线矩阵采用轮换算法对系统总线和DMA进行仲裁



9、ICode总线,DCode总线、系统总线、DMA总线、总线矩阵、AHB/APB桥


10、在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外设的时钟


11、数据字节以小端存储形式保存在存储器中


12、内存映射区分为8个大块,每个块为512MB


13、FLASH的一页为1K(小容量和中容量),大容量是2K。


14、系统存储区(SystemMemory)为ST公司出厂配置锁死,用户无法编辑,用于对FLASH区域进行重新编程。所以我们烧写程序务必选择BOOT1 = 0,这样通过内嵌的自举程序对FLASH进行烧写,比如中断向量表和代码


15、STM32核心电压为1.8V


16、STM32复位有三种:系统复位、上电复位、备份区域复位。其中系统复位除了RCC_CSR中的复位标志和BKP中的数值不复位之外,其他的所有寄存器全部复位。触发方式例如外部复位、看门狗复位、软件复位等;电源复位由于外部电源的上电/掉电复位或者待机模式返回。复位除了BKP中的寄存器值不动,其他全部复位;备份区域复位的触发源为软件复位或者VDD和VBAT全部掉电时。


17、单片机复位后所有I/O口均为浮空输入状态


18、68个可屏蔽中断通道,16个可编程优先级,16个内核中断,一共68+16=84个中断。103系列只有60个中断,107系列才有68个中断


19、系统启动从0x00000004开始,0x000 0000保留


20、(NestedVectored Interrupt Controller)NVIC嵌套向量中断控制器,分为两种:抢先式优先级(可嵌套)和中断优先级(副优先级,不能嵌套)。两种优先级由4位二进制位决定。分配下来有十六种情况:






21、0号抢先优先级的中断,可以打断任何中断抢先优先级为非0号的中断;1号抢先优先级的中断,可以打断任何中断抢先优先级为2、3、4号的中断;……;构成中断嵌套。如果两个中断的抢先优先级相同,谁先出现,就先响应谁,不构成嵌套。如果一起出现(或挂在那里等待),就看它们2个谁的子优先级高了,如果子优先级也相同,就看它们的中断向量位置了。原来中断向量的位置是最后的决定因素!!!!


22、上电初始化后AIRC初始化为0,为16个抢先式优先级,但是由于所有的外部通道中断优先级控制字PRI_n为0,所以抢先式优先级相同,此时就不能嵌套了


23、NVI中有ISER[2](Interrupt Set-Enable Registers),ICER[2](Interrupt Clear-Enable Registers),ISPR[2](Interrupt Set-Pending Registers),ICPR[2](Interrupt Clear-Pending Registers),IABR[2](Active Bit Registers),IPR[15](InterruptPriority Registers)定义。其中ISER和ICER分别为中断使能和中断失能寄存器,都是写1来使能/失能中断的。为什么写1?为什么不采用一个寄存器而用两个寄存器来表示中断使能/失能状态?由于硬件,写0比较复杂,并且可能造成其他位的状态改变,所以用1来表示打开或者关断是比较合理的


24、中断标志位需要手动清除


25、配置外围器件的一般步骤:1、打开端口时钟。2、定义初始化结构体并初始化。3、调用


26、串口的奇偶校验:如果是奇偶校验,那么USART_InitStructure.USART_WordLength= USART_WordLength_9b;这个数据的长度必须设定为9位!


27、ADC的规则组可以自定义转换通道顺序和转换的通道个数。在实际应用中,有时候希望有一些特别的通道具有很高的优先权,需要在规则组进行转换的时候强制打断,进行另一个通道的转换,这样一组通道,叫做注入组。


28、定时器的输出比较模式:Timing(冻结,什么都不做,普通定时),Active(OCxREF输出高电平有效),Inactive(OCxREF输出低电平),Toggle(比较成功后翻转电平)。


29、STM32的定时器从0开始计数,满足一些条件,给出标志位(比如匹配成功、时间更新、溢出等)然后从0开始计数。这一点和51不同。


30、OCx=OCxREF+极性


31、自动装载寄存器和影子寄存器:前者相当于51当中的溢出设定数值。而影子寄存器顾名思义是影子,就是寄存器的另一分copy。实际起作用的是影子寄存器,而程序员操纵的则是自动装载寄存器。如果APPE位使能,表明自动装载寄存器的值在下一次更新事件发生后才写入新值。否则,写入自动装载寄存器的值会被立即更新到影子寄存器。





32、RCC_PCLK1Config(RCC_HCLK_Div4)CLK1的4分频给定时器基准时钟



33、定时器配置:RCC、NVIC、GPIO(OC输出或者PWM)、TIMx


34、通用定时器可以输出4路不同的PWM,高级定时器可以输出4路不同的PWM外,还可以输出3路互补的PWM信号(驱动三相电机),一共有7路。这样算出来STM32可以产生30路PWM=7*2+4*4


35、





36、高级定时器时钟源挂在了APB2上,而通用定时器挂在APB1上。AHB(72mhz)→APB1分频器(默认2)→APB1时钟信号(36mhz)→倍频器(*2倍)→通用定时器时钟信号(72mhz)。如果APB1没有分频,那么通用定时器的时钟信号频率就直接等于APB1的时钟频率,没有上述的倍频器*2过程。TIM_SetAutoreload()用来改变PWM的频率,TIM_SetCompare1()用来改变占空比



37、有刷电机一般启动力矩大一些,无刷电机启动力矩小,运行起来力矩大。有刷电机采用电刷机械电流换向,而无刷电机则通过霍尔传感器测出转子的电流来判断电机的运动位置和方向,返回给控制回路


38、死区是必须要有的,因为这涉及到电路的短路问题。晶闸管在换向的时候需要死区时间来彻底关断线路


39、刹车功能用来在控制回路出现问题时,硬件自动给予外部电机进行紧急刹车制动,反应在PWM上持续给出一个固定的占空比?(三相驱动也是?)


40、PWM输出最好采用PWM模式,其他的比较输出模式相位会慢慢改变,不精准


41、对FLASH的读写需要先解锁后加锁。FLASH写0容易,写1难。


42、下载程序有两种方式,一种为ICP(在线编程),适用于JTAG或SWD协议下的烧写程序。另一种成为IAP(在应用编程),适用于很多接口(USB,串口,CAN)下载到存储器中,IAP允许在程序运行时重新烧写FLASH


43、FLASH分为主存储器(这里放置用户的程序代码)和信息块(启动代码),除此之外,还有一部分叫做系统存储器,这一块用户不可操作,为ST公司出产后固化,为系统的上电自举程序


44、FLASH在写的时候,一定不能读,如果有读操作,那么将会锁住总线


45、对FLASH操作时,必须打开HIS


46、STM32有两种看门狗(IWDG独立看门狗《独立时钟》,WWDG窗口看门狗《由APB1分频而来》)


47、SPI的的最高频率为36MHz(fpclk/2)


48、 TIM1和TIM8高级定时器在输出PWM时,需要配置一下主输出功能(CtrlPWMOutputs)才能输出PWM。其他的通用定时器不需要这样配置。但是TIM6和TIM7没有PWM输出功能。


49、Code为程序代码部分

RO-data 表示程序定义的常量(如:const temp等);

RW-data 表示已初始化的全局变量

ZI-data 表示未初始化的全局变量,以及初始化为0的变量

Code, RO-data,RW-data..............flash

RW-data, ZIdata...................RAM

初始化时RW-data从flash拷贝到RAM


50、STM32F103ZET6有144个引脚(Z为144),其中,可用IO口为112个(7X16=112,ABCDEFG口)


关键字:STM32  单片机  学习笔记 引用地址:50条STM32单片机学习笔记

上一篇:STM32定时器做外部脉冲信号计数器用
下一篇:STM32基础入门(二)——STM32入坑指南

推荐阅读最新更新时间:2024-11-10 11:55

51单片机8X8点阵贪吃蛇游戏(带proteus仿真)
一共六关 吃20个就到下一关 // i 单片机论坛 /i :http://www.51hei.com/bbs/ #include reg51.h #define uchar unsigned char #define SNAKE 20 //最大长度 #define TIME 50 //显示延时时间 #define SPEED 71 //速度控制 //#define keyenable 1 sbit keyenable=P3^6; //方向使能 /*sbit keyx=P0^1; //左右 sbit key
[单片机]
51<font color='red'>单片机</font>8X8点阵贪吃蛇游戏(带proteus仿真)
STM32的中断使用介绍
一、前言 中断是什么?举个例子来说,当我们正在工作时,突然电话响了,这时你会把手里的工作先停下来,然后去接电话,当接完电话后,电话里的人安排你马上做一件事,这时你需要立刻去做这件事,当把这件事做完后你会继续之前被打断的工作,这个过程为一次中断。 在计算机科学中,中断指计算机CPU获知某些事,暂停正在执行的程序,转而去执行处理该事件的程序,当这段程序执行完毕后再继续执行之前的程序。整个过程称为中断处理,简称中断,而引起这一过程的事件称为中断事件。中断是计算机实现并发执行的关键,也是操作系统工作的根本。中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程之间的切换。 后续将从以下图1中所示
[单片机]
<font color='red'>STM32</font>的中断使用介绍
关于STM32库函数的代码性能对比
ST 已经推出了三种库函数,用以方便客户快速开发STM32系列的 MCU。从最早的标准外设驱动库,到后来的 Cube HAL , 再到 Cube LL,还有直接写寄存器。这几种库的代码效率到底如何呢?本文将针对这个问题进行分析和对比,最后提供对比数据供大家参考。 问题分析 我们以 GPIO 翻转、tiM PWM 输出、ADC DMA数据采集和 DMA M2M 这四个常用功能,通过不同的库函数来实现,最终来对比各个库函数的性能。四个工程代码的内容简述如下: GPIO 翻转:切换 GPIO 的输出电平,其中包含了系统时钟初始化和 GPIO 翻转的代码。 TIM PWM 输出:通过 TIM1 的通道 1 输出频率是 36KHz
[单片机]
关于<font color='red'>STM32</font>库函数的代码性能对比
基于单片机的多功能智能小车机器人
随着科学技术的日新月异及传感器技术的不断发展,各国对智能移动机器人的研制和开发力度也不断加大,各式各样的机器人进入社会生活的方方面面。机器人可以代替人力进行许多具有一定危险性的活动,进入一些人类难以涉足的空间,比如不久前成功在月球登陆的 玉兔 号月球车。本文设计的小车可以应用于无人驾驶机动车、无人工厂、仓库等领域,有实际应用推广价值。 1 系统总体设计 本文设计的小车采用51单片机作为控制核心,使用光电传感器检测小车的运动状态,进行循迹和避障,并由LCD实时显示小车的运动状态。金属传感器检测到铁片后小车由循迹状态进入到避障状态,按下遥控器可使小车进入遥控状态,每次状态转换都有报警指示。智能小车实物照片及功能示意图如图1所示。
[单片机]
基于<font color='red'>单片机</font>的多功能智能小车机器人
EM78系列单片机--查表程序设计
在一个沒有規则性的内容转换中,查表程序是相当有用的,用户可以使用查表程序很快速的得到相关内容的转换。 例:设计一个程序,將如下图所示中的PORT5读到的一个数值,将输入内容做转换,然后输出到PORT6的7段显示器上。 上图中开关关闭,I/O引脚可以得到一个低电位,若是开关开启则I/O引脚可以得到一个高电位。 图 5.2 数码管 八段说明 7段显示器的接线图如上,我們要編一个表做为读入内容以及输出内容的对映。 7段显示器各脚位电位状态 PORT6输出 PORT5输入 H G F E D C B A 16进位数值 10进位数值 0 0 1 1 1 1 1 1 0X3F 0 0 0 0 0 0 1 1 0 0X0
[单片机]
EM78系列<font color='red'>单片机</font>--查表程序设计
电源芯片超低静态电流延长MCU系统中电池寿命
2013 年 7 月 19 日,北京讯     日前,德州仪器 (TI) 宣布推出一款支持低至 100nA 超低总体系统静态电流的多模式电源管理单元 (PMU),其可最大限度降低基于微控制器的且由电池供电的水表、气表以及其它工业应用的功耗。该 TPS65290 PMU 可管理系统的所有电源需求,包括 100nA 至 500mA 的负载状况。     TPS65290 PMU 整合三个支持微控制器 (MCU) 睡眠模式的厂家可配置“常开”电源以及一个可从输入电压或升降压转换器选择电源的自动功能。此外,TPS65290 还能够与 TI 超低功率 MSP430F5328 等 MSP430 MCU 无缝工作。 TPS65290 的主
[电源管理]
电源芯片超低静态电流延长<font color='red'>MCU</font>系统中电池寿命
基于STM32单片机对跑马灯的控制
基于学习STM32有一段时间了,特意写下一篇关于一个简单的跑马灯 的例程,梳理思路,也希望我自己的理解能帮到一些学习STM32的初学者 //======================================================// 首先,GPIO的配置种类有8种。分别为模拟输入、浮空输入,上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。 下面将以实例的方式讲解GPIO的设置及实现过程。 事例1:跑马灯实验 跑马灯实验的功能:LED灯进行有规律闪烁。(下面的LED灯的数量都为2个,所以关于寄存器的配置也将以两组的方式进行讲解) 首先要知道普通的IO就两种功能一个为输入,一个为输出
[单片机]
基于<font color='red'>STM32</font><font color='red'>单片机</font>对跑马灯的控制
#51单片机# UART串口通信的基本应用、模块介绍和串口程序
UART串口通信的基本应用 通信的三种基本类型: 单工通信:值允许一方向另一方传送星系,另一方不能回传信息。例:电视遥控器、收音机广播 半双工通信:数据可在双方之间相互传播,但同一时刻只能一方传给另一方。例:对讲机 全双工通信:发送数据的同时也可接收数据,两者同步进行。例:电话 UART模块介绍 通常情况下,我们关心的是通信的结果而非过程。51单片机内部存在UART模块,可自动接收数据,接收完毕,会发出通知信号。要使用这个模块,需要配置对应的具有特殊功能的寄存器。 51单片机的UART串口结构由串行口控制寄存器SCON、发送和接收电路三部分构成。 先来了解串口控制寄存器SCON SCON——串行控制寄存
[单片机]
#51<font color='red'>单片机</font># UART串口通信的基本应用、模块介绍和串口程序
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved