- 博客(33)
- 收藏
- 关注
原创 STM32F103ZET6完整技术点(持续更新~)
STM32F103ZET6完整技术点,包含基础程序模板创建,各种外设控制器以及GPIO,UART,I2C,WIFI,DMA,MQTT
2025-02-04 20:36:06
339
原创 Linux内核程序打印函数printk以及Linux内核程序GPIO操作函数
相同点:都是用于打印,用法一致不同点:前者用于内核空间,后者用于用户空间。
2024-11-21 14:12:02
1010
原创 MQTT协议
有效载荷(同订阅主题的有效载荷):00 31 2F 73 79 73 2F 6B 31 75 61 6D 5A 38 45 44 39 54 2F 65 68 6F 6D 65 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74。//剩余长度=可变报头长度+有效载荷长度(35)*&# -------------> *为设备名称devicename ,#为ProductKey。
2024-10-24 15:42:49
666
1
原创 I2C----以AT24C02为例(上)
AT24C02是一个2K位串行EEPROM,内部含有256个8位字节的存储单元,掉电数据不丢失 AT24C02的存储容量分成32页,每页8Byte,共256Byte。AT24C02寻址范围为00~FF,共256个寻址单位。查询AT24C02文档得知。
2024-10-16 23:02:21
788
原创 I2C总线协议学习
-I2C是两线式串行总线--1.1 两线式两线式:CPU和外设之间有两根线:SDA数据线和SCL时钟控制信号线。SDA数据线用于数据传输,CPU和外设都可以控制,CPU给外设发送数据就CPU控制SDA线;外设给CPU发送数据就外设控制SDA信息。SCL时钟控制信号线,只能由CPU控制,用于同步数据,实现同步数据的方式主要是低放高取。低放高取:当SCL为低电平时,将数据放到SDA上;当SCL为高电平时,从SDA上获取数据。同时,SDA和SCL必须都要外接一个上拉电阻,所以两者都默认为高电平。
2024-10-14 23:53:11
392
原创 Makefile
makefile是一个文件,这个文件中描述了咱们程序的编译规则,咱门执行make命令的时候,make命令会在当前目录下找makefile文件,根据makefile文件里的规则,编译咱们的程序。1.预处理 ---> 头文件展开,宏替换,条件编译,去掉注释 ---->.i 预处理成.i文件。3.汇编 ---> 汇编代码转成二进制的机器码 --->.o 汇编成.o文件。2.编译 ---> 检查语法,生成汇编代码 ---->.s 编译成.s文件。4.make 目标 ---------> 选择目标执行。
2024-10-12 11:42:36
226
原创 Uboot移植
Uboot如何烧写到emmc中?1.通过串口。在windows系统中,首先将ubootpak.bin这个文件通过烧写软件烧进TF卡中,再将TF卡插入SD0卡槽,X6818上电后首先会查看SD0卡槽的TF卡有没有uboot,如没有以次SD1,EMMC。
2024-10-09 21:29:01
403
原创 C++类与对象(下)
首先,明确一点,Date类名称----》指针指向的对象----》指针本身----》指针指向的对象将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数 隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。请思考下面的几个问题:对于下面的问题,主要在于权限的放大和缩小1. const对象可以调用非const成员函数吗?×2. 非const对象可以调用const成员函数吗?√。
2024-10-04 22:15:15
786
原创 类与对象练习
涉及的知识点包含:默认构造函数:构造函数、析构函数、拷贝构造函数、以及运算符重载后期需要使用到const,对于不修改成员变量的成员函数都可以加上const修饰,原因在于const和非const都可以调用const修饰的成员函数。可以自己尝试一下,评论区留言。
2024-10-03 00:02:47
226
原创 C++类与对象(上)
C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其 返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。C++编译器给每个“非静态的成员函数“增加了一个隐藏 的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量” 的操作,都是通过该指针去访问。一个类可以实例化多个对象,每个对象中的成员变量可以存储多个的值,但调用成员函数只有一个,如果每个对象都要放成员函数,那么会造成空间浪费。首先,声明和定义的区别?
2024-09-29 18:55:37
324
原创 C++基础 ---C++入门(下)
可以看到,NULL可能被定义为字面常量0,或者被定义为无类型指针(void*)的常量。以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调 用建立栈帧的开销,内联函数提升程序运行的效率。1. 在使用nullptr表示指针空值时,不需要包含头文件,因为nullptr是C++11作为新关键字引入 的。3. 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何 一个同类型实体。8. 访问实体方式不同,指针需要显式解引用,引用编译器自己处理。
2024-09-28 20:51:27
370
原创 C++基础 ---C++入门(上)
C++使用函数名修饰规则后,即使你的函数名是相同的,只要参数的个数、类型、顺序不同都可以构成函数重载,函数重载时使用函数修饰规则,在实现时就会去寻找对应的地址。------ 如果对cout这个函数常用的话,只展开这个函数,其他内容以及函数并不展开。------- 将C++库中的所有函数展开。1.预处理 ---> 头文件展开,宏替换,条件编译,去掉注释 ---->.i 预处理成.i文件。2.C++是如何支持函数重载的?2.编译 ---> 检查语法,生成汇编代码 ---->.s 编译成.s文件。
2024-09-28 18:56:21
530
原创 LeetCode练题 --- 对应数据结构顺序表复习
1.2 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。方法二:将运用两个有序数组的特性,从两个数组的最大值开始比较,大的一方放入nums1数组的最大值的位置,再以此往前放,当nums1数组的值还没有比较完,可以不增加操作;
2024-09-25 14:42:18
252
原创 C数据结构复习之顺序表
顺序表是一种基本的数据结构,它通过连续的内存空间来存储数据元素,每个元素占据相同的存储空间,且在逻辑上相邻的元素在物理位置上也相邻。
2024-09-24 17:39:47
356
2
原创 比特初阶-----复习C语言的总结
因为备战2024年蓝桥杯c/c++类别的比赛,我选择先复习一下c语言各个方面的知识,我是跟着比特鹏哥的B站C语言来复习,目前学习完了初阶的知识,进行一个总结。
2023-12-13 17:51:55
323
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人