STM32学习笔记- 概念

来源:互联网 发布:js编程confirm显示不了 编辑:程序博客网 时间:2024/04/27 23:03

内容摘录自互联网和数据手册-


HSE时钟

高速外部时钟信号(HSE)由以下两种时钟源产生: 
● HSE外部晶体/陶瓷谐振器 
● HSE用户外部时钟

HSI时钟
HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入。


RC振荡器 
在振荡电路中的频率选择部分可以只用电阻和电容构成。 这种只用电阻和电容构成的称为RC 。
优点是实现的成本比较低,毕竟就是一个电阻电容
缺点是由于电阻电容的精度问题所以RC振荡器的震荡频率会有误差,同时受到温度、湿度的影响
这个跟元器件的工艺有关


晶体振荡器
优点是相对来说震荡频率一般都比较稳定
缺点的话就是价格要稍微高点了,还有用晶体振荡器一般还需要接两个15-33pF起振电容


上拉输入模式
区别在于没有输入信号的时候默认输入高电平(因为有弱上拉)。


下拉输入模式:区别在于没有输入信号的时候默认输入低电平(因为有弱下拉)。


对于浮空输入模式
顾名思义也就是输入什么信号才是什么信号,对于浮空输入要保证有明确的输入信号。


电平
“电平”就是指电路中两点或几点在相同阻抗下电量的相对比值。这里的电量自然指“电功率”、“电压”、“电流”并将倍数化为对数,用“分贝”表示,记作“dB”。


SYSCLK 系统时钟,最大72MHz
HCLK  :AHB总线时钟,由系统时钟SYSCLK 分频得到,一般不分频,等于系统时钟
经过总线桥AHB--APB,通过设置分频,可由HCLK得到 PCLK1与PCLK2时钟
不过PCLK2时钟最高可达72MHz,而PCLK1最大36MHz。PCLK2对应APB2外设。PCLK1对应APB1外设。

PLL
锁相环电路,用于提供频率。


时钟
SYSCLK,HCLK,HCLK1,HCLK2


Flash Memory
闪存是一种不挥发性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。

0x0000 0000--0x0007 FFFF, STM32系统上电后是从O地址开始执行的,但是这个地址范围没有FLASH也没有SRAM- 原来,STM32可以通过 BOOTO,BOOT1两个管脚来动态的把上面的存储区域映射到 0x0000 0000--0x0007 这个区域。

从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问,0x0000 0000或0x0800 0000。


什么是九针串口与三线制接法有啥联系?
引脚   定义   符号
1  载波检测  DCD(Data Carrier Detect)
2  接收数据  RXD(Received Data)
3  发送数据  TXD(Transmit Data)
4  数据终端准备好  DTR(Data Terminal Ready)
5  信号地  SG(Signal Ground)
6  数据准备好  DSR(Data Set Ready)
7  请求发送  RTS(Request To Send)
8  清除发送  CTS(Clear To Send)
9  振铃提示  RI(Ring Indicator)
通常 2、3、5 三线制接法 就可以 全双工通信


用个MAX232,三线制就是只用TXD RXD GND这三个脚行成通讯!!
上位机 MAX232
TXD<--->RXD
RXD<--->TXD
GND<--->GND


STM32的大部分IO脚都具有复用功能,例如PA8/USART1_CK/TIM1_CH1/MCO这个管脚,从资料上看,其实际功能是通过GPIOA_CRH寄存器配置,可以配置为浮空输入模式、上拉/下拉输入模式、通用推挽输出模式、通用开漏输出模式、复用推挽输出模式或者复用开漏输出模式,可是这里有USART1_CK/TIM1_CH1/MCO三种复用功能,要怎样才能指明我是要哪一种复用功能呢?这个在整个资料里似乎并未提及。 


话说回来了,我去翻了下ReferenceManual,楼主你看看这一章节“AF remap and debug I/O configuration register (AFIO_MAPR)”,在AFIO_MAPR这个寄存器里设置了什么就是哪些被remap了。 对应的也就是例程库里的这个函数了:void GPIO_PinRemapConfig(u32 GPIO_Remap, FunctionalState NewState)看了这个寄存器,我才明白,stm32的复用引脚必须是要成对成对的定义,还不能定义错了,例如:对于USART2,AFIO_MAPR寄存器的位3,在复位状态下为0,即没有重映像,其默认复用引脚


为:CTS/PA0,RTS/PA1,TX/PA2,RX/PA3,CK/PA4,当AFIO_MAPR的位3设置为1时,有重映像,这时候复用引脚为:CTS/PD3,RTS/PD4,TX/PD5,RX/PD6,CK/PD7。那这里就要注意了,在画原


理图的时候,就不能够把这些引脚交叉了,好比RTS定义到PA1脚,但是TX却定义到PD5脚,那CPU肯定就实现不了了。设计的时候,就必须先要搞清楚各个外设的io脚都是成对地出现在哪几个io脚上,否则根本就是错误了。 如果真是如此,我觉得stm32的芯片岂不是很容易让人掉入陷阱?nxp的io设置就相当灵活,任意一个管脚,都可以随意设置其可选的几个复用功能之一,根本不用担心上述问题。 


peripheral  外设


RCC_APB2Periph_USART1,RCC_APB2Periph_GPIOA,


--------------
SPI接口简介


    SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI有三个寄存器分别为:控制


寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR。外围设备FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,


该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接


口芯片没有主机输出/从机输入数据线MOSI)。SPI接口
  SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps