2019-12-10

GPIO:通用I/O引脚        STM32F429IGT6 共有176个引脚,其中I/O引脚144个;每组16个引脚分为9组:A0 ~ A15   ——  I0 ~ I15;

GPIO有两种输出方式:

                   推挽输出:两个MOS管同时工作且状态相反,可以进行选择高电平以及低电平可以加快 导通 / 截止 的速度;

                   开漏输出:只有N-MOS工作,无高电平输出,可以使用一个上拉电阻提供高电平;

                    还存在一种高阻态  介于高低电平之间,内部上下电阻消高阻态

                   电阻动作可进行上拉、下拉以及浮空不动作

    GPIO的输入方式:有模拟信号输入 与 数字信号输入   且模拟信号不可以直接转化为数字信号。

        预处理 (将所有.h文件复制到.c)-->>编译(.c — > .s生成.s文件)-->>汇编(.s — > .o)— >链接(提取多个.o文件中被使用的内容生成可执行文件.exe)

其中在Windows中生成.elf

其中在Linux中生成.bin/.hex

可执行文件分为三段 :

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

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

                 底层:.code(代码段);可映射指令集

        SRAM(存放临时数据):

                   创建 栈 空间,地址指向首地址;

                   创建 堆 空间,地址指向末地址;

硬件控制通过寄存器的方式实现:地址映射(找到寄存器类似于寻找地址)

在进行程序编写时首先要确定硬件版的路径;确定需要用到的器件所使用的引脚。

硬件初始化

(确定使用的)时钟源打开

通过RCC打开 GPIOH (LED使用的路径‘H’)的时钟源

RCC首地址       0x40023800(查找说明书确定地址2.2)

外设初始化

GPIOH首地址    0x40021C00

PH10 ----输出

(在进行编写时首要宏定义各大地址的起始坐标如图:(地址在手册上查询))

2019-12-10_第1张图片

偏移量代表移动。

   输出:GPIOH_MODER ---- 0x100000设置为输出   偏移 0x00(输出指针的起始地址)

   推免:GPIOH_OTYPER -----0x00000000推挽        偏移 0x04

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

   速度:GPIOH_OSPEEDR--  0x00000000速度低速  偏移0x08

再由硬件控制高低电平:

 GPIOH_ODR              偏移 0x14

你可能感兴趣的:(2019-12-10)