美文网首页
第一天(GPIO)

第一天(GPIO)

作者: ZSF与你 | 来源:发表于2018-11-06 16:09 被阅读0次

1.遥控器

STM32F103C8

DMIPS:Dhrystone Million Instructions executed Per Second ,主要用于测整数计算能力。

GPIO:

输入方式(检测外部电路的检测状态):

上拉输入

下拉输入

浮空输入

模拟输入

输出方式(控制和驱动外部电路):

通用开漏输出(只能输出低电平,若要输出高电平,只能再加上拉电阻)

通用推挽输出(既能输出高电平,也能输出低电平)

复用开漏输出

复用推挽输出

清零操作:

    与操作 &

    GPIOB_CRL = GPIOB_CRL & (~(*<<28))

    GPIOB_CRL &= ~(*<<28)

置1操作:

    或操作 |

    GPIOB_CRL |= 0x03<<28

2.软件编程:

    1.配置时钟--APB2 外设时钟使能寄存器(RCC_APB2ENR)

    2.

3.LED

    遥控器中LED原理图

    LED0--PB7

    LED1--PB3

智能楼宇中LED原理图(R8T6)

D3(LED1)--PB1

D4(LED2)--PC5

4.".h",".c"文件书写格式

.h文件书写格式

#ifndef _LED_H_

#define _LED_H_

#endif

注:".h"文件的作用

        用来给变量和函数提供一些全局性的声明,这些声明被其他.c文件共享,方便变量和声明的修改,使得大型代码逻辑更清晰更易于维护。


.c文件书写格式

#include "stm32f10x.h"

#include "led.h"

#include "delay.c"

void led_config(void)

{

    //配置函数led--PB1 通用推挽输出

    /***********

    1.打开时钟

    2.配置PB1-通用推挽输出

    ***********/

}

注: 在头件中进行函数,变量声明,宏声明,结构体声明;而在C文件中去进行变量定义,函数实现。

        这样分开写成两个文件是一个良好的编程风格。

   而且,比方说 我在aaa.h里定义了一个函数的声明,然后我在aaa.h的同一个目录下建立aaa.c ,aaa.c里定义了这个函数的实现,然后是在main函数所在.c文件里#include这个aaa.h 然后我就可以使用这个函数了。 main在运行时就会找到这个定义了这个函数的aaa.c文件。

5.ST-LINK连接器

1.VCC

4.SDI

5.SCK

6.GND

       


时钟系统框图


STM32F103XX框图

6.GPIO寄存器描述

1)端口配置低寄存器(GPIOx_CRL) (x=A..E)

端口配置低寄存器(GPIOx_CRL) (x=A..E) (GPIOx_CRL) 位配置说明

2)端口配置高寄存器(GPIOx_CRH) (x=A..E)

端口配置高寄存器(GPIOx_CRH) (x=A..E) (GPIOx_CRH) 位配置说明

3)端口输入数据寄存器(GPIOx_IDR) (x=A..E)

端口输入数据寄存器(GPIOx_IDR) (x=A..E)

4)端口输出数据寄存器(GPIOx_ODR) (x=A..E)

端口输出数据寄存器(GPIOx_ODR) (x=A..E)

7.外设时钟使能寄存器

1)APB2 外设时钟使能寄存器(RCC_APB2ENR)

APB2 外设时钟使能寄存器

2)APB1 外设时钟使能寄存器(RCC_APB1ENR)

APB1 外设时钟使能寄存器

ZSF

相关文章

网友评论

      本文标题:第一天(GPIO)

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