你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32单片机学习笔记(中)

[复制链接]
eefishing 发布时间:2019-11-24 11:34
51、ARM公司只生产内核标准,不生产芯片。ST、TI这样的公司从ARM公司那里购买内核,然后外加自己的总线结构、外设、存储器、始终和复位、I/O后就组成了自己的芯片。
1.png
52、CMSIS标准用于在向上的用户层和下面的硬件层交换信息。这个架构当然可以自己定义,但是这样的话就会没有标准。所以强制使用CMSISI标准来设计芯片。通俗点的讲就是系统初始化的函数名称CMSIS定义为SystemInit(),GPIO_ResetBits()等
53、端口复用和端口重映射是两个概念:前者在使能其对应的端口和对应的功能时钟即可。后者需要打开AFIO时钟,然后进行端口的重映射GPIO_PinRemapConfig()
54、下载程序只能使用串口1,在硬件设计时一定要注意!
55、J-TAG调试频率一般设定为2MHz,而SWD调试频率可以设定为10MHz
56、SysTick的中断实现可以有两种方式:循环等待和中断法。推荐用循环等待,中断法可能会出问题而且占用资源。
57、部分I/O引脚是5V兼容的。单个I/O的最大驱动电流和灌入电流均为25mA。整个芯片的电流为150mA
58、KEIL支持位段操作,可以利用C语言中的位段知识定义位段结构体,然后对单独的寄存器进行单独的位操作。
59、关于内部上下拉电阻的设置:如果外部的按键另一头接地,那么需要设置成上拉电阻。(理由是当没有按下按键时,由于上拉,输入为高电平;按下时,由于外部接地,输入为低电平。)同理,如果外部的按键另一头接高电平,那么需要设置成下拉电阻。
60、串口中断TXE和TC的区别:其实很明显,一个是发送寄存器空标志,一个是发送完成标志。因为串口在发送的时候首先需要把发送寄存器中的数据移位到移位寄存器(影子寄存器)后再串行发送出去。所以当发送寄存器DR空时说明现在可能正在往外面发送数据,数据可能还没有发送完。但是发送完成不一样,他是在移位寄存器将本次数据全部移位完成后设置的标志位(也就是发送完了停止位)。这么看来:TXE允许程序有更充裕的时间填写TDR寄存器,保证发送的数据流不间断。TC可以让程序知道发送结束的确切时间,有利于程序控制外部数据流的时序。
61、窗口看门狗顾名思义有一个窗口,这个窗口的横坐标为时间,意思是在指定的时间范围内刷新寄存器,否则单片机复位。窗口的上限由人来设定W[6:0],下线定死为0x40Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1;Twwdg为超时时间ms,Fpclk1为APB1时钟KHz,
62、TIMx通用定时器有4个独立通道,分别可以用来作为:输入捕获、比较输出、PWM生成、单脉冲模式输出。
63、定时器的时钟来源有4个:内部时钟(CK_INT),外部时钟模式1(TIx),外部时钟模式2(ETR),内部触发模式(ITRx,这个用来定时器的同步)
64、定时器中断溢出更新时间:Tout=((arr+1)*(psc+1))/Tclk,ARR为自动装载寄存器(1~65535)、PSC为分频系数,TCLK为输入时钟频率(Mhz)
65、PWM1和PWM2模式的区别仅在于相位的180度。前者高电平时,后者低电平。感觉好鸡肋,OCxREF极性就可以实现这个功能。。
66、定时器输入捕捉有一个滤波器,顾名思义滤波器起到的就是滤波的作用,在捕捉外部信号时,信号可能不稳定,此时需要滤波:当检测到有外部输入时,需要再连续采样N次如果确定为高电平/低电平,则触发响应中断(如果开启了的话)。
67、电容触摸屏原理:通过充放电的曲线不同来检测是否被按下。 实际的实验过程中,TPAD可以用一块覆铜区域来替代,通过电容的充放电常数来确定是否按下。
2.png
68、OLED,即有机发光二极管(OrganicLight-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display,OELD)。下图为OLED的GRAM与屏幕的对应表
3.png
PAGE2单独列出来:
4.png
# B& A# s5 c% {5 V6 h0 I3 }. \' R
69、USART可以操纵SPI设备。不过最大频率只有4.5MHz
70、使用I/O口时应该注意的问题
5.png
71、ADC的Vref+和Vdda与VSS,Vref-一定要加高质量的滤波电容,切靠近单片机。
6.png
72、ADC分为规则组和注入组,前者有16个通道,后者有4个通道。并且16个通道公用一个数值寄存器,注入组的4个通道分别有一个数值寄存器。 7.png
73、采样频率越高,输入阻抗要求越小。
74、Stm32进入中断的最短周期为6个周期
75、 8.png
76、 9.png
77、FSMC,即灵活的静态存储控制器。能够与同步或异步存储器和16位PC存储器卡接口,STM32的FSMC接口支持包括SRAM、NANDFLASH、NORFLASH和PSRAM等存储器。
78、平时所说的U盘里的FLASH存储器有两种类型:NANDflash和NOR flash。
NAND FLASH
NOR FLASH
不能直接运行里面的代码
可以直接运行里面的代码
写入和擦除速度快
写入和擦除速度慢
读取速度稍慢
读取速度稍快
擦写周期100万次
擦写周期10万次
成本低,容量高
成本高,容量低
一般为串行接口
有SRAM接口

; d, V/ N4 P' n
79、TFT在操作时,可以当作外部SRAM来操作,这样的话,如果单片机有FSMC接口,就可以使用NORFLASH的SRAM接口去控制,速度非常快。
80、Stm32的的FSMC有4个256MB的存储块,一共寻址1GB的外部存储器空间。
10.png
81、在STM32内部,FSMC的一端通过内部高速总线AHB连接到内核Cortex-M3,另一端则是面向扩展存储器的外部总线。内核对外部存储器的访问信号发送到AHB总线后,经过FSMC转换为符合外部存储器通信规约的信号,送到外部存储器的相应引脚,实现内核与外部存储器之间的数据交互。
82、FSMC中的DATASET和ADDSET的设置需要参看外部存储器的时序图来确定。一般而言,DATASET指的是数据建立时间,也就是读/写信号开始到读/写信号停止(上升沿存储数据)的持续时间。(一般来说写比读快!)。而ADDSET指的是地址建立时间,指的是片选之后到读/写操作之前的时间,这是针对SRAM来说的,如果操纵的是TFT,不存在地址线,所以此时的ADDSET就是读/写信号结束到RS电平的转换时间。
11.png
83、 12.png
84、 13.png
85、FSMC的三个配置寄存器:FSMC_BCRx(片选控制配置)、FSMC_BTRx(片选时序)、FSMC_BWTRx(片选写时序)。
9 s3 R0 E) ]' Q1 I
86、   RTC时钟配置必须要用到BKP寄存器,BKP寄存器在单片机复位、电源复位、待机唤醒模式下是不会更改值的,他的供电由VDD供电,VDD被切断后自动切换至外部的VBAT供电。
87、   要修改BKP寄存器的值,必须取消其写保护的标志。BKP寄存器在上电时自动写保护。
88、   Stm32有三种省电模式:
14.png
三种省电模式中,耗电量从上到下依次降低,待机模式的电流仅为2uA。
89、   从待机模式中唤醒单片机等效于让单片机复位,但是电源寄存器的值会有一个标志位指示单片机是被唤醒的,不是被复位的。
90、   ADC的时钟不要超过14MHz,否则转换精度会下降。最大转换速率为1MHz,即转换周期为1us(14MHz,采样周期为1.5个ADC时钟)
91、   Tcovn=采样时间+12.5个周期。采样时间尽量选长一点,这样精度高一些,但是转换速率下降,这也是有利必有弊。
92、    15.png
93、 拿ARM7TDMI来说,T代表Thumb指令集,D是说支持JTAG调试(Debugging),M意指快速乘法器,I则对应一个嵌入式ICE模块。
94、   MMU作为嵌入式处理器与应用处理器的分水岭标志à具有内存管理单元的嵌入式处理器可以定位为应用处理器。这么说M系列和A系列的处理器的区别在于A系列的处理器具有MMU单元可以进行内存模块的管理。
95、ARM处理器有两种状态:ARM状态和Thumb状态。
16.png
96、 这张图说明了一切:Thumb2指令集做了一件很伟大的事情:将16位和32位的指令集融为一体,兼容性非常强!(这么说CM3不支持某些32位ARM指令集??)
97、 17.png
98、MSP是系统复位后使用的堆栈指针,PSP由用户的代码使用。两个堆栈指针为4字节对齐!!
99、在ARM编程领域中,凡是打断程序运行的事件,统称为异常(exception)。
100、    因为存在LR(链接寄存器),所以可支持1级的子程序调用而不用压栈到内存,大大提高了运行速度。---à这就是说,我们在编程的时候,一级调用是不会耗费太多时间的,除非是二级调用!
2 T- S: O, }2 |, n/ \
收藏 2 评论0 发布时间:2019-11-24 11:34

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版