HAL库常用函数及初始化流程
1 常用HAL库函数汇总1. 1 GPIO1234HAL_GPIO_WritePin() 设置引脚状态HAL_GPIO_ReadPin() 读取引脚状态HAL_GPIO_TogglePin() 切换引脚状态HAL_Delay() 延时,指定多少毫秒 123456void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);GPIOx:GPIO 端口(如GPIOA、GPIOB等)。GPIO_Pin:引脚编号(如GPIO_PIN_5)。PinState:引脚状态(GPIO_PIN_RESET 或 GPIO_PIN_SET)。 1234GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);GPIOx:GPIO 端口。GPIO_Pin:引脚编号。 1234void...
从零搭建计算机
从零搭建计算机1 数字电路基础1.1 二进制数据表达12341. 二进制表示文字2. 二进制表示图片3. 二进制表示声音4. 二进制表示视频 1.2 数电基础① 基础逻辑门电路 需要记住:口诀、符号! 1234561. 非门 输入和输出相反2. 与门 有0出0,全1出13. 或门 有1出1,全0出0 ② 其他门电路 需要记住:口诀、符号! 12345678910111. 异或门 相同出0,相异出1 2. 与非门 有0出1,全1出03. 或非门 有1出0,全0出14. 异或非门 相同出1,不同出0 ③ 运算器1位半加器 1位全加器 4位加法器 Digital自带的加法器组件:菜单 -> 组件 -> 运算器 -> 加法器,内置加法器组件可以设置数据位数。 ④ 锁存器和触发器SR锁存器 D 锁存器 D 触发器上升沿触发的D触发器: Digital自带的D触发器组件:菜单 -> 组件 -> 触发器 -> D触发器 ⑤ 寄存器 Digital自带的寄存器组件:菜单 -> 组件 ->...
C语言 一
目录 程序c语言开发工具编译器c语言执行的流程源文件中的组成部分变量常量 1 程序编写的编程语言(大量的代码(指令)组成) 比如 xxx.c文件 1234int main(){ printf("xxxx"); retun 0;} 2 c语言12概念: 是一个程序员使用的高级语言使用场景: 作为嵌入式开发的基础语言 3 开发工具1vsCode: 免费,轻量级的开发工具 4 编译器1minGW: 是一个windows系统的工具包,其中包含了c语言的编译器-->gcc 5 c语言执行的流程1234561.编写源代码 xxx.c2.预处理 xxx.i : 修理xxx.c的源文件(去除多余的注释,空格)3.编译 xxx.s 把预处理文件编译成汇编文件4.汇编 xxx.o 把汇编文件编译成二进制文件(机器码)5.链接 xxx.exe 把所有的可执行文件组合起来(自定义的xxx.o和库文件)6.执行 ...
C语言 六
目录 函数函数的基本概念函数基本语法主函数函数原型作用域static 和 extern 关键字常用系统函数(标准库函数)递归函数 11 函数 11.1 函数的基本概念① 什么是函数1函数是一种可重复使用的代码块,用于执行特定的任务或操作。 ② 函数的分类121. 库函数(标准函数)2. 自定义函数 ③ 函数四要素12345678910111. 函数名 函数名也是标识符,需符合标识符规范。 2. 函数体 函数中的代码块。 3. 参数 分为形参和实参4. 返回值 表示函数的计算结果,定义函数的时候需要在函数名前面指定返回值的类型 11.2 函数基本语法① 声明函数(定义函数)12345返回类型 函数名(参数列表){ 函数体语句; ....} 注意: ① 定义函数的时候,只有函数名和函数体是必须的,参数和返回值可以没有的。 ② 如果函数没有返回值,函数类型使用 void ③ 如果没有参数小括号空着,多个参数使用逗号分隔。 ② 调用函数12函数名();函数名(参数列表); 注意: ①...
C语言汇总
目录 第01章_C语言入门第02章_变量与进制第03章_运算符与流程控制第04章_数组第05章_指针第06章_函数第07章_结构体与共用体第08章_C语言常用函数第09章_文件操作附录1:CLion使用附录2:MinGW编译器的安装和配置 第01章_C语言入门本章专题脉络 1、初识计算机语言1.1 计算机语言是什么 人类语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而中国人要和英国人交流,可以使用普通话或英语。 计算机编程语言,就是人与计算机交流的方式。人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。 计算机语言有很多种。如:C 、C++、Java、Go、JavaScript、Python,Scala等。 体会:语言 = 语法 + 逻辑 1.2...
C语言 五
目录 数组数组的概念数组的操作字符数组(字符串)多维数组 10 数组 10.1 数组的概念① 数组四要素1234数组名:本质上是标识符常量,需要符合标识符规范。元素:数组中的成员,同一个数组中的元素必须是相同的数据类型。下标:也称为索引、角标,就是元素的数字编号,是从0开始的连续数字;通过下标可以访问到数组中的某一个元素。长度:元素的个数。 ② C 语言数组特点(不用背)1234(1)创建数组时会在内存中开辟一整块连续的空间,占据的空间的大小,取决于数组的长度和数组中元素的类型。(2)数组中的元素在内存中是依次紧密排列的且有序的。(3)数组一旦初始化完成,其长度就是确定的,数组的长度一旦确定,就不能修改。(4)我们可以直接通过索引(下标)获取指定位置的元素,速度很快。 10.2 数组的操作① 如何定义数组1234567891011121314151617// 1)方式一:先指定元素的个数和类型,再进行初始化(先声明,再初始化赋值)int arr1[4];arr1[0] = 100;arr1[1] = 200;arr1[2] =...
C语言 四
目录 流程控制循环控制语句whiledo whilefor跳转控制语句breakcontinuegoto断点调试 7 流程控制 7.2 循环控制语句 ① while 循环1234567while (条件表达式){ 语句1; 语句2; ... 语句n;} **死循环(不会结束的循环):**条件表达式永远成立! **可以结束的循环:**条件表达式不能永远成立,且随着循环次数增加越来越趋向于不成立。 ② do while 循环1234567do{ 语句1; 语句2; ... 语句n;} while (条件表达式); while 和 do while 区别: do while 循环结构,循环体语句第一次执行未经过条件判断,但以后的每一次循环体语句的执行还是会先经过条件判断。 ③ for 循环1234567for (循环变量初始化; 条件表达式; 循环变量变化){ 语句1; 语句2; ... ...
C语言 三
目录 运算符运算符基础算术运算符关系(比较)运算符逻辑运算符位运算符赋值运算符三元运算符流程控制分支控制语句赋值运算符 6 运算符 6.1 运算符基础 **运算符:**也称为操作符,是一种特殊的符号,用以用于数据的运算、赋值和比较等。 运算数: 也称为操作数,参与运算的数据,可以是变量、常量、表达式。 表达式: 表达式具有值,可以是一个变量、一个常量,也可以是变量、常量和运算符的组合。 运算符4要素: 功能、所需操作数个数、所组成表达式的值、有无副作用。 运算符分类(按操作数个数): 一元运算符、二元运算符、三元运算符。 运算符分类(按功能): 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符 6.2...
C语言 二
目录 二进制进制分类进制表示形式进制转换原码 反码 补码数据类型数据类型转化 5 二进制 5.1 进制分类1231.二进制2.十进制3.十六进制 5.2 不同进制表示形式123十进制: 就是十进制(无特殊)二进制: 0b010101十六进制: 0x 0X #0x #0X 5.3 进制之间的转换123456789101112131415161718192021222324252627282930313233343536373839404142434445二进制转十进制 方式: 从低位开始,提取每一位的数据,乘以2的(位数-1)次方, 结果相加 0111 二进制 0 1 1 1 1*2^(1-1)=1 1*2^(2-1)=2 1*2^(3-1)=4 0*2^(3-1)=0 1+2+4+0=7十进制转二进制 方式: 使用该数不断的除以2,直到商为零结束, 最后把每一步计算的余数倒叙组合就是二进制 ...
数据结构十一(快速排序QuickSort)
前言记录key,key一般都是最左边,目的就是为了把key排到正确的位置,同时将key设为坑位开始坑在左边,右边开始找值补坑,right找到比key小的值,放入坑位,right形成新的坑现在坑在右边,左边开始找值补坑,left找到比key大的值,放入坑位,left形成新的坑直到left和right相遇就结束,最后把key放到坑位,key就排到正确的位置 More info: QuickSort 快速排序(QuickSort)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263bool QuickSort(int buf[],int begin,int end){ //备份关键元素 int temp = 0; //备份首元素下标,尾元素下标 int left = begin,right = end; //1 避免元素为空 if(begin <...
.png)
.png)
.png)
.png)

.png)
.png)
.png)
.png)
.png)