记录学习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口,再初始化串口,再使能串口,再开启接收中断,在设置中断优先级

posted @ 2023-07-21 19:05  lmulusama  阅读(30)  评论(0)    收藏  举报