美文网首页
嵌入式学习笔记19.12.10

嵌入式学习笔记19.12.10

作者: Mo1035 | 来源:发表于2019-12-10 16:00 被阅读0次

    GPIO通用(输入I/输出O)引脚:

    总引脚176

    I/O引脚 144/16 = 9组

    A,B,C,D,E,F,G,H,I

    A0-A15

    B0-B15

    .....

    I0-I15

    输入

    复位0

    置位1

    直接写入数据寄存器,会导致物理硬件跟不上MPU处理速度

    输出

    推挽输出:加快开关电路速度

    推挽

    推挽模式同时有高低电平

    开漏输出

    开漏

    若选择开漏模式,外部必须接上拉电阻,否则只有低电平

    若开漏,只有上面MOS管工作,若推挽,2个MOS管同时工作

    高组态:介于高低电平之间,通过内部上拉,下拉电阻消除这种状态。

    还有浮空这种状态。

    MOS管(电压型控制器件-开关)

    三极管(电流型控制器件)

    上拉电阻

    下拉电阻

    ADC模拟信号采集

    CMOS    3.3-2.4高电平   0.7-0低电平

    施密特触发器:加快电平变化,只输出0/3.3

    当电压出于高低电平之间,

    输入,模拟输入

    实质寄存器与寄存器之间的交互数据

    复位信号使PC程序寄存器(32位) 地址 为0x 00 00 00 00 (4个字节 = 32bit)

    栈空间

    .c  ->  .o  ->  .exe

    1.预处理

    将所有.h文件复制到.c

    宏展开/别名替换/枚举替换...

    2.编译

    .c  ->  .s(汇编文件)

    每一个.c生成一个.s文件

    3.汇编

    .s  ->  .o(目标文件)

    每一个.s生成一个.o文件

    4.链接

    生成可执行文件

    .o  ->  .exe

    Windows

    .o  ->  .elf

    Linux

    .o  ->  .bin/.hex

    嵌入式

    交叉编译,在当期系统开发生成其他系统的可执行文件

    可执行文件的构成:

    .bss可优化(未被使用的数据)

    .data数据段(全局变量,地址,常量,静态变量)

    .code代码段

    SRAM(256K Byte)

    FLASH(1M Byte)

    0x00创建一个栈空间和一个堆(malloc)空间

    __main库函数

    用寄存器的方式实现硬件的控制

    地址映射

    PH10---低电平点亮,高电平熄灭

    AMBA总线

    AHB高速

    APB标准

    1.硬件初始化

    a) 时钟源打开

    通过RCC打开GPIOH的时钟源

    RCC首地址0x40023800

    复位值不是0,应该用位运算

    RCC_AHB1ENR  0x100080偏移0x30

    b)外设初始化

    GPIOH首地址0x40021C00

    PH10--输出

    GPIOH_MODER  0x100000设置为输出  偏移 0x00

    推挽

    GPIOH_OTYPER  0x00000000设置为推挽  偏移0x04

    上拉(保证灯初始熄灭)

    GPIOH_PUPDR  0x100000设置为上拉  偏移0x0C

    低速

    GPIOH_OSPEEDR  0x00000000设置为低速  偏移 0x08

    2. 硬件控制

    3. 高低电平输出

    GPIOH_ODR偏移0x14  

    高电平0x400

    低电平0x00

    使能enable/失能disable

    相关文章

      网友评论

          本文标题:嵌入式学习笔记19.12.10

          本文链接:https://www.haomeiwen.com/subject/oveggctx.html