月度归档: 2023年2月

19 篇文章

180讲 类模板分文件编写
类模板分文件编写 学习目标: 掌握类模板成员函数分文件编写产生的问题以及解决方式 问题: 类模板中成员函数创建时机是在调用阶段,导致分文件编写时连接不到 解决: 直接包含.cpp 源文件 //主流使用方法2,写为.hpp文件。 将声明和实现写到同一个文件中,并更改后缀名为.hpp,hpp是约定的名称,并不是强制。 //Person.hpp 文件 #…
GPIO功能框图讲解
GPIO功能框图讲解 STM32芯片中 除了ADC是3.3V以外,别的都是5V供电 tolerant 容忍的意思,这里的5V tolerant I/O 说明其兼容3.3V,可以和ADC 的3.3v通信 GPIO功能框图讲解 1.右边I/O引脚接外部芯片,当外部电压为5V时,VDD_FT 下的保护二极管工作,电压会往上流动,从而保护芯片。 2.当I/…
20讲 位带操作
20讲 位带操作 位带区的一个位再位带别名区会被膨胀成四个字节,上面 *8代表算出其偏移字节转化成位,*4表示一个位膨胀为4个字节。 n * 4 表示 具体要操作寄存器的哪一个位 0x42000000 这里举例子,这里只是位带区 的起始地址 例如: 下面这个比较难理解 文档对这个的讲解如下 位带操作 主要用于对一个位的频繁的操作,一般比较少用,目前…
19讲 按键输入
19讲 按键输入 int main(void) { /* LED 端口初始化 */ LED_GPIO_Config(); KEY_GPIO_Config(); /* 按键扫描 */ while (1) { //KEY_Scan(); 端口扫描,返回的值只要读取到KEY引脚的信号就反转, if( KEY_Scan(GPIOA,GPIO_Pin_0) …
12讲 自己写库–构建库函数
12讲 自己写库--构建库函数 12讲自己写库,外设寄存器结构体定义。 使用结构体来实现对寄存器地址的偏移。 #define GPIOF ((GPIO_TypeDefine *)GPIOF_BASE) 宏定义:通过将GPIOF_BASE的地址强制类型转换为GPIO_TypeDefine 的指针,来实现寄存器地址偏移。 typedef unsigne…
实现PF8亮灯 操作寄存器点亮LED灯
1.先查看原理图,找到想要实现亮灯的引脚。此处PC 代表GPIOC ; PF 代表 GPIOF 。约定俗成,包括RA RB 都代表GPIOA GPIOB等等等等。。。 根据需要打开的引脚,找到GPIOF 的寄存器映射地址,通过控制地址保存的参数来实现对GPIO的电平控制 由于需要控制GPIO口,所以我们应该查找芯片 datasheet 的 GPIO…
5讲 寄存器
5讲 寄存器 寄存器 1.什么是存储器映射? 2.什么是寄存器映射? 答: 3.C语言对寄存器的封装?。