- 博客(41)
- 收藏
- 关注
原创 IMX6ULL学习之GPIO外设
uint32_t inputRegister, // 输入选择寄存器地址。( uint32_t muxRegister, // 复用控制寄存器地址。uint32_t configRegister,// 配置寄存器地址。原理:按下,连通GND,KEY0为低电平;当引脚作为输入时,读取到1表表示引脚高电平,读取到0表示引脚低电平。当引脚作为输出时,向对应的位写1使引脚为高电平,写0引脚为低电平。置0,表示设置该位引脚为输入模式,从该位引脚读取高低电平。置1,表示设置该位引脚为输出模式,向该位引脚写高低电平。
2026-04-01 20:30:41
29
原创 通信协议学习
AHB:32根数据总线,32根地址总线,并行 RAM:并行 LCD:并行(24根数据线+1时钟线)奇校验:校验位为’1',若数据位中"1的个数加上校验位的’1'保持’1’的总个数为奇数个,则代表奇校验通过。偶校验:校验位为’0',若数据位中"1的个数加上校验位的’0'保持’1’的总个数为奇数个,则代表奇校验通过。校验位:N:无校验 O(odd):奇校验 E(even):偶校验。理论20~30米,实际应用:米级距离,一般10米以内。
2026-04-01 09:20:44
36
原创 ARM学习之时钟,EPIT,GPT
1、什么是PLL,Prescaler、FPD,它们各自有什么作用?4、IMX6ULL中的EPIT和GPT的工作原理是什么?2、IMX6ULL中有几个PLL?3、简述ARM PLL的配置流程。
2026-03-30 20:31:50
70
原创 ARM学习之中断
设置GIC中对应中断优先级 GIC_SetPriority(GPIO1_Combined_16_31_IRQn,0);按下,连通GND,KEY0为低电平;松开,不连通GND,KEY0为高电平。SGI:软中断(0~15),中断来自CPU,自我打断。GIC初始化 GIC_Init();ISR 中断状态寄存器。PPI:私有外设中断(16~31)获取GIC寄存器组的基地址。设置GIC中对应中断使能。清楚中断结束寄存器的标志。获取中断通知寄存器的值。异常向量表基地址重映射。
2026-03-30 09:12:53
178
原创 ARM学习
发生模式跳转时,调用spsr存储cpsr内容(不同的寄存器集),完成当前模式后,基于spsr存储相关的cpsr内容,恢复原先模式。概念回顾:指令集(复杂/精简),ARM内核版本(ARM11的变化)应用领域(A/R/M)特点:面积小,加工成本低,功耗低,体积小 例:ARM,便携式设备(手机)三种型号:Cortex-A,Cortex-R,Cortex-M。算术右移:针对有符号数,最高位补符号位,需要考虑数值的符号位。逻辑右移:针对无符号数,最高位补0,不需要考虑数值的符号位。
2026-03-24 23:35:27
398
原创 温度传感器——DS18B20
一、ROM操作命令类型:读 ROM,匹配 ROM,搜索 ROM,跳过 ROM,报警搜索二、分辨率定义:传感器对温度变化的敏感程度9位:0.5℃ 10位:0.25℃ 11位:0.125℃ 12位:0.0625℃采集数据 × 分辨率 = 真实温度数据三、线与线与特性:两台设备操作电平高低,拉高优先级低于拉低拉高:释放总线(放弃对引脚电平的控制权)释放总线多用于数据接收方接上拉电阻:双方都释放总线时,保证引脚高电平,选择范围4.7k~10kΩ。
2026-03-23 16:50:06
280
原创 51学习之通信协议
单片机常见通信协议:UART、IC、SPI、USB、CAN51单片机通信协议:只有UART通信UART:universal asyc receiver tansinitter,通用异步收发器。
2026-03-22 12:05:58
338
原创 输入输出1
GPIO:GemalPupose put Output,通用目的输入输出。输出模式:给定引脚电平,控制引脚高低电平的变化。条件判断成立则按键K1按下,反之则未按下。按键模块(低开高关,P1引脚高4位)输出模式:检测引脚电平变化。开漏输出复用推挽复用开漏。低电平按下,高电平未按下。
2026-03-20 11:31:45
49
原创 硬件学习之基础内容
集成度低,只有一块单独的CPU,需要外接功能模块(RAM,ROM),成本高,可实现更复杂的功能,跑Linux操作系统。外存(运行文件)→内存(变量数据临时存储)→CPU(数据运算)→内存→外存。最小系统:电源(VCC+GND),晶振(OSC),复位(Reset)外存:存放文件,掉电数据不丢失,价格低。存放变量,掉电数据丢失,读写速度快。interrupt——中断系统。下载软件 STC-ISP。NPU——神经网络处理器。外设,核心板,最小系统。RAM——随机访问内存。GPU——图像处理单元。
2026-03-19 23:15:00
71
原创 51单片机学习
集成度低,只有一块单独的CPU,需要外接功能模块(RAM,ROM),成本高,可实现更复杂的功能,跑Linux操作系统。有0则0,全1才1 eg:0011&0001=0001。有1则1,全0才0 eg:0011&0001=0011。高集成度,将所有功能集成到一块芯片,(CPU,RAM,),价格便宜,简单控制领域。相同为0,相异为1 eg:0011&0001=0010。存放变量,掉电数据丢失,读写速度快。单片机示意图+架构设计。GPU——图像处理单元。FPU——浮点数单元。
2026-03-19 23:15:00
91
原创 软件综合项目-mqtt
双向传输(可发送,可接收推送数据) 客户端主动获取信息。HTTPS适用于传输的数据量比较大情况,传输方式为字符。MQTT传输数量比较小,二进制传输,订阅和发布传输协议。MQTT属于应用层协议,支持其实现的传输协议为TCP。物联网通信 前后端网页分离。长连接:无论是否收发消息,一直保持连接。短连接:只有收发消息,才需要连接。1 发送多次数据,OneNet云做broker端。客户端不在线,数据缓存在服务器。et:时间戳,尽量设置大。MQTT库:Paho库。
2026-03-18 22:00:00
36
原创 软件综合项目笔记
目标定义:明确要实现的系统 / 产品核心目标。整体架构:规划系统包含的平台数量与模块划分。功能细节:逐一描述各模块的具体功能与实现细节。界面设计:明确界面展示内容、布局样式与交互逻辑。数据存储:确定需存储的数据类型、结构,以及数据更新 / 持久化的频率。预警联动:梳理数据异常时所需的告警方式与联动处理机制。1.技术方案整体方案:确定系统整体技术选型与架构方向。模块方案:细化各模块的技术实现路径与交互逻辑。流程图:绘制核心业务流程与数据流转的可视化图表。代码接口。
2026-03-16 21:00:00
366
原创 网络编程之UDP
函数原型:int socket(int domain, int type, int protocol);AF_INET6 IPv6协议族。目的:解决协议的通信问题 功能:将不同协议套在同一组函数接口上。功能:创建一个用来进行套接字通信的终端节点。IPv4协议族(常用)功能:向另一个套接字发送信息。
2026-03-11 13:51:22
70
原创 数据库编程 + 3.9作业
student(学号 integer primary key,姓名 text,性别 text,年龄 integer,成绩 integer);select 学生信息.姓名 as 姓名, 学生课程.名称 as 课程, 学生成绩.成绩 as 成绩。eg2:select 学号,成绩 from student;//只显示学号,成绩列。select 学生信息.姓名 as 姓名, 学生成绩.成绩 as 成绩 from 学生信息。select 学生信息.姓名 as 姓名, 学生成绩.成绩 as 成绩 from 学生信息。
2026-03-09 21:00:00
169
原创 传输协议TCP/IP
UDP:资源开销小,机制简单,8字节,不安全,不可靠,无连接(直接发送数据报)TCP:资源开销大,20个字节固定头,机制复杂,安全可靠,有连接(三次握手)4层:应用层,传输层,网络层,网络接口层。TCP与UDP的区别。
2026-03-09 13:30:00
28
原创 进程间的通信(上)
通信方式没有共享的空间,只能依赖第三方的空间(内核)来实现通信管道,信号,消息队列,共享内存,信号灯,本地域套接字特点:管道(最简单,最方便);共享内存(最高效);信号灯(有名信号量)
2026-02-26 21:30:00
716
原创 线程间通信
实现方式一个进程空间内的所有线程共享数据段和堆区,多线程操作全局变量空间时会引入资源竞争,可通过加互斥锁解决线程间通信最简单的方法:全局变量+互斥锁原子操作:不会被cpu任务调度打断的一次最小的操作互斥锁功能:避免多线程资源竞争,配合资源使用,使用资源前加锁,使用资源结束后解锁实现原理:加锁后,无法再次加锁,必须等到解锁后才能继续加锁加锁失败后,则加锁后续的程序无法执行操作变量时,加锁;完成操作后,解锁临界代码/临界区:不会同时被CPU任务调度同时执行的代码。
2026-02-25 16:49:39
775
原创 数据结构之队列
链式队列是一种对链表的特殊使用方式,本质是链表//链式队列的数据区//链式队列的指针区(存放下一节点的首地址)}Node_t;创建//对结构体操作的指针注意:调用函数不可缺参,注意语句结束加分号特别是空队列语句的判断本质是一种特殊使用方式的链表空间现用现申请插入元素通过尾插实现顺序与的区别链式顺序顺序结构(表,栈,队列)链式结构(表,栈,队列)定义创建相同均要调用结构体指针操作要为结构体申请一片空间来存放结构体中相关参数不同。
2026-02-17 16:18:36
258
原创 数据结构之表
链表可以不设定元素上限可以嵌套定义,因为指针字节大小固定8字节//将整型变量重名为DATAtypetypedef struct node //构建结构体类型node,并将这种node型变量重命名//建立数据区data,存放整型数据//建立指针区,存放下一个节点的地址}linknode;//重命名节点为linknode。
2026-02-17 16:18:09
935
原创 数据结构之二叉树
分支节点:既有前驱,也有后继,树形结构中的分支节点最多有一个前驱,但是可以有多个后继。先入栈左侧元素到底端,然后回退出栈,若有右节点,打印,入栈,回退出栈,深度优先遍历(DFS):前序遍历,中序遍历,后序遍历。...打印G,入栈G。层:根节点所在层为第一层,每过一个节点。树形结构中每个节点最多有两个后续节点,即为二叉树。出栈G,无右,二次入栈G,打印G。借助队列实现:打印根节点,根节点入队,出队。首次左滑入栈,触底出栈,判断二次右滑入栈。出栈D,有右,右滑,入栈H,出栈H。节点高度:该节点到根节点的距离;
2026-02-03 23:46:39
392
原创 数据结构之栈
一片连续空间实现对数据的操作//栈要求有一片连续的存储空间来存放数据//数据存储空间//连续的存储空间的首地址//栈数据空间指针//存储空间辅助操作参数int top;//栈顶元素的位置,用于表示当前栈内元素的数目(初始为0)int maxlen;//栈内元素的最大数目}SeqStack;}Node_t;创建,销毁,判断空栈,入栈,出栈,创建判断空栈return 1;return 0;1:0;压栈(头插法实现)//指针空间申请return -1;
2026-02-02 09:34:06
245
原创 内存常见问题调试方法
错误(error):语法错误,无法生成对应的二进制文件告警(warning):语法警告,语法有可能会出现问题,不影响二进制文件的。
2026-01-26 19:06:35
42
原创 C语言常用库函数
/对pstr指向的字符串,遇到空格分割。//对剩余字符串,遇到空格分割。//在pstr指定字符串中查找" "字符串,如果没有返回NULL。字符串函数,能够根据指定的字符集对字符串进行分割。常用于程序中获得printf打印的内容。将格式化字符串放入指定地址空间。从指定空间中接收格式化字符串。在字符串中查找子串出现的位置。未改变字符串的存储内容。
2026-01-26 19:06:27
15
原创 1.23学习笔记
union 共用体名 {数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;...union 共用体名 变量名。
2026-01-24 09:01:03
548
原创 1.22学习笔记
struct 结构体名数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;...;注:末尾一定要加分号,可以有不同数据类型,数据类型均为 struct 结构体名只能定义,不能赋值(只是对类型的定义,缺少可以赋值的变量)//成员变量单一数据类型int year;int mon;int day;int hour;int min;//成员变量复杂数据类型char sex;int age;int score;//成员变量数据类型含结构体。
2026-01-23 09:51:49
297
原创 1.20笔记
int(*p)(int,int) //一个指针,指向函数(一个返回)//函数的函数名就是指向函数的指针。注:数组名是一种指针,数值变化在函数中实现,最后通过指针取值提取到主函数中。const修饰*p,const修饰p,此类指针必须初始化()定义一个指针,指向字符串开头(化常量为变量,使其可以自加)形式1多用于函数传参,指针指向的空间中的数据不能修改。练习:计算字符串 大写,小写,数字,空格字符的个数。指针可以改变指向存储空间,但其中存储的数据不变。字符串(数组存储,指针操作)作为函数参数。
2026-01-21 09:47:11
266
原创 1.19学习笔记
格式:数据类型 *变量名;int *p;char *p;double *pint *p,q //p是int*型;q是整型在64位系统中,所有的指针变量占8字节。int*;char*;double*;指向指针的指针;
2026-01-19 19:39:57
575
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅