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

时钟系统框图

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


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


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

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

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

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

ZSF
网友评论