高级会员

- 积分
- 648
- 金钱
- 648
- 注册时间
- 2018-12-2
- 在线时间
- 89 小时
|
本帖最后由 朽木矣,自雕也 于 2019-9-18 22:09 编辑
一、第一天:1.((GPIO_TypeDef *) GPIOC_BASE)表示将其强制转换为指针类型,
2. GPIOB->CRL &= ~( (0x0f) << (4*0) );
GPIOB->CRL |= ( (1) << (4*0) );
这两个的区别
3.定义宏的表示方法
二、第二天:
1.在使用复用功能的是时候,最少要使能 2 个时钟:
1) GPIO 时钟使能
2) 复用的外设时钟使能, 同时要初始化 GPIO 以及复用外设功能
2.一个 GPIO 口的状态是由速度(Speed)和模式(Mode)来决定的
三、第三天:
1.GPIO在APB上
四、第四天:1.芯片数据手册管脚描述章节可以查:FT都是5V电平兼容
2.系统时钟配置函数以及相关外设时钟使能函数都在stm32f10x_rcc.c中
3.stm32f10x_usart.h和misc.h头文件在SYSTEM文件夹中需要用到,每个实验都会引用到
4.“GPIO_Init(GPIOB, &GPIO_InitStructure)”原型为 :void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
5.void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct): GPIO_InitStruct:指向结构GPIO_InitTypeDef的指针
6.初始化PA口,就是GPIO_Init (GPIOA,&GPIO_InitStructure)
7.设置GPIO一般步骤:①定义一个结构体;②打开相应的时钟;③设置单个IO口;④设置端口速度;⑤设置端口模式;⑥初始化对应端口8.结构体类型,结构体类型名称,结构体变量
9.typedef struct{
uint16_t GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef; GPIO_InitTypeDef GPIO_InitStructure;定义GPIO_InitStructure为结构体变量;10.struct PER{
int n; char ch[8];
}; 只能用 struct PER per 的方式定义per为结构体变量。
11.支持位操作:(了解不必深究)①SRAM区最低1MB范围;②片内外设区的最低1MB范围12. 代码自动补全:12:代码自动补全:
自动补全
13:两个 IO 口的模式和速度都一样,只用初始化一次
14.APB1PERIPH_BASE是APB1总线上挂的外设 基地址(??某个具体的AP1上的外设只需加上地址偏移量??)
第五天:
1.并行通信:数据各个位传输
2.串行通信:数据按位顺序传输(一个一个比特传输)
3.同步通信:带时钟同步信号传输(上升沿、下降沿)
4.异步通信:不带时钟,两者事先约定好(根据比特率解析数据)
5.USART (通用同步异步收发器):异步通信、全双工【USRT通用异步收发器】
6.SPI :SCK同步时钟, MISO,MOSI ,同步通信、全双工
7.I2C:同步通信,半双工(和单总线一样)
8.STM32串口异步通信定义的参数:①起始位②数据位③奇偶校验位④停止位⑤波特率设置
第六天:
1.配置波特率BRR寄存器的值,将USARTDIV:整数部分(直接化成十六进制),小数部分(乘16再化成十六进制)
2.波特率计算方法: 波特率 = Fplkx / (16*USARTDIV)
第七天:
1.串口配置步骤:
①串口时钟使能,GPIO时钟使能;(串口复位不是必须的)②GPIO端口模式设置;③串口参数初始化;
④开启中断并且初始化NVIC(需要开启中断才需要这步骤)⑤使能串口;⑥编写中断处理函数;
⑦串口数据收发;⑧串口传输状态获取
|
|