第一节:MDK软件基本用法
文件名带有*,表示文件已经修改但是没有保存。
第二节:STM32的固件库
打开参考手册:@STM32RBT6开发板提前下载包\DataSheet\STM32\STM32F10x中文参考手册.pdf
8为单片机,全部都是使用寄存器进行配置,对开发人员要求比较高。
官方固件库:
CMSIS(cortex microcontroller software interface standard),软件标准。
5.stm32f10x_stdperiph_lib_um:帮助手册
第三节:内核结构与程序设计方法
经典系列:
ARM7:1994,32位处理器,三级流水线,冯诺依曼结构,
ARM9:1998年,哈佛结构,五级流水线,高性能低功耗,主要用于嵌入式产品。
ARM10:2000年,综合处理器,处理JAVA应用系统,6级流水线,主频325M,哈佛结构。
ARM11:2004年,新一代RISC精简指令集处理器,消费类电子。
盖房子:房子建筑风格,就是架构。加一个卫生间,浴室,游戏区,相当于内核,根据内核和设计风格,图纸,把房子盖起来,你得到房子就是MCU。
1.采用哈佛结构,32位指令集,和数据总线,寻址空间4G,存储器和寄存器都是32位。
地址总线:处理数据之前先找地址,内核通过地址总线寻找数据的位置。
重叠结构:执行某条指令的时候,同时执行其他某个指令。
流水线结构:
指令集:精简指令集RSIC ,复杂指令集CISC
精简指令集:减少指令的总数,简化指令的功能,降低硬件的设计难度,是的指令能够单周期运行。单片机。
复杂指令集:增强原有的指令的功能,使用负责的新指令代替原先子程序的功能。x64 。
ICODE总线:总线传输指令的。代码是放在闪存flash,内核要读取指令,必须通过ICODE总线。
DCODE总线:数据总线,数据常量,变量存储到SRAM区域,数据可以通过改宗宪进行访问。
system总线:系统总线主要用于访问外设的寄存器,完成外设的寄存器编译。
FSMC:(灵活的静态存储控制器Flexible static memory control),扩展内存。
APB1:USB、DAC,PWR,IIC,TIM,USART,SPI,IWDG,CAN
APB2:ADC1/2/3,GPIOA/B/C/D/E/F/G
第四节:STM32程序设计方法:
1.粗看硬件,确认有没有硬件模块去支持你的开发需求。《点亮LED》
2.细看原理图,路径;@@STM32RBT6开发板提前下载包\开发板原理图\Periph外围器件原理图和MCU最小系统原理图
外围器件原理图:找到模块的实现原理,管脚定义。然后打开最小系统原理图,找链接的管脚。
1.一共7组。每一组有16个I/O。根据芯片实际情况使用I/O。
2.I/O(gernral purpose input/output port)通用输入输出端口。输入或输出数据。
输入:输入浮空(模拟信号的读取,读取高低电平不确定的信号)、输入上拉(默认管脚时高电平的场合)、输入下拉、模拟输入(模拟信号的读取)
输出:开漏输出(电平转换和线与功能)、推挽式输出(大功率驱动)、推挽式复用功能、开漏复用功能
保护二极管:主要用于面对高电压和过电流的时候,保护芯片。如果电压过高,高电压会通过上面的二极管,流向VDD,如果低电压,通过下面二极管,VSS流向外部。
P-Mos:当给与高电平是,PMOS导通,VDD通过MOS将高电平信号输出到IO口。NMOS导通时,I/O输出低电平。
输出数据寄存器:控制IO口电平状态,写1,高电平,写0低电平。同时BSRR端口位设置/清零寄存器可以通过影响ODR(输出数据寄存器),来简介设置IO口电平状态。
模拟输入:上拉和下拉电阻,不接入电路,此时信号经过内部导线,直接连到内部模拟信号外设中使用。
输入数据寄存器:用于存储对应IO口的状态,高电平为1,低电平为0;
使用GPIO要提前开启时钟:
输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。
标签:高电平,原理图,总线,嵌入式,STM32,指令,寄存器,输入 From: https://blog.csdn.net/weixin_67660500/article/details/141688863