记录学习stm32的过程
Tx发射
Rx接收
UART:通用异步收发器
USART:通用同步异步收发器
奇校验位偶校验位作用:补1达到奇数或偶数
用外设之前要使能io口对应的时钟
不管是库函数还是位操作或者是寄存器最终结果都是控制odr(输出)或idr(输入)寄存器
Ifndef
define避免重复定义
工程创建:
1.建立HARDWARE文件夹
2.Template右键manage project
3.新建HARDWARE
4.把led.c,beep.c之类的源文件添加进来
5.通过魔术棒把头文件路径加入,选到文件夹即可
这样就把led.c 及.h都添加进来了
程序编写过程:
.c文件 开头包含头文件(stm32f10x.h,该文件对应的.h)
中间定义一个函数类似于void BEEP_Init(void)主要是用于初始化,包含两个方面:
1.使能IO口时钟 GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
2.初始化IO口模式,包括三个方面:
输出模式 GPIO_InitStructure.GPIO_Mode =
端口配置 GPIO_InitStructure.GPIO_Pin =
速度 GPIO_InitStructure.GPIO_Speed =
结尾不需要加#endif
.h文件
主要进行定义,解释由源文件进行
开头
#ifndef __LED_H
#define __LED_void BEEP_Init(void)
结尾需要加#endif
如果用位带操作的话要在ifn def后面加#include "sys.h",然后对io口进行映射
如:
#define LED0 PBout(5)// DS0
#define LED1 PEout(5)// DS1
main.c文件
开头引用全部用到的头文件
之后
int main(void)
{
while(1)
{
}
}//先使能时钟,再初始化io口,再初始化串口,再使能串口,再开启接收中断,在设置中断优先级

浙公网安备 33010602011771号