自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 linuxI2C驱动框架

i2c_adapter对应的是芯片内部集成的控制器,有多少个芯片控制器就有多少个i2c_adapter。如果是驱动人员的话,先是在设备树下i2c控制器节点下写对应的节点,然后这个节点就会被内核一一转换成i2c_client,接着我们使用i2c总线驱动来匹配对应的i2c_driver的of_id_table的compatible属性去匹配。spi_master——i2c_adapter,spi_device——i2c_client,spi_transfer——i2c_msg,spi_message是链表头。

2024-01-10 11:53:15 365 1

原创 安卓9盒子,拔掉耳机线之后HDMI无声解决问题过程

查看日志发现——发现走得是音频策略是媒体策略,但是由于后台开启腾讯会议。在音频策略里面还是走了一下通话策略。隔壁同事说晶晨的项目也有这个问题,他通过修改xml文件可以这个问题解决了(原理是安卓首先会通过xml文件去加载这个安卓设备,都没有内置扬声器了,那就肯定不会是活跃设备)第一次修改直接卡在开机画面,首先是检查出xml格式有问题。最终失败了,因为好像是可以删除内置麦克风,但是不可以是删除内置喇叭。第二修改还是卡在开机画面,问题出现在权限没给。把在xml里面关于关于扬声器的全部删除,下面是已经删除了。

2024-01-10 11:50:22 1038

原创 如何修改上一次git提交记录

git commit --amend(在提交记录里面添加你要的changid,这样才能推送达到你想要的远程提交记录上面)git push -f (一定要-f,代表强制)在回退之前当前是不能有修改的。

2024-01-10 11:35:15 418

原创 makefile一些知识

makefile小白入门

2022-07-09 15:50:32 135 1

原创 网络聊天室C语言(控制台)实测有用,后续继续完善相关内容

这学期学了计算机网络,正好上年租了一台阿里云服务器,然后自己就想做一做基于控制台网络聊天程序。服务器是Linux,客户端是我们的windows。写完程序后。发现客户端总是连接超时(wireshark抓包)。并且自己在服务器那里又抓不到对应端口的包,可是我把端口又全部开放了(服务器和阿里云安全组都开放了)。却总是失败。查找了两天的问题后来在下面这篇博客发现了问题。https://www.dechenyun.com/768.html阿里云的开放端口不是在下面那个安全组来开放的。点击进去配置即可服

2022-05-06 20:43:22 534

原创 进程的零碎小知识

进程的属性1.程序读取的上下文,它表示程序读取执行的状态2.程序当前执行的目录3.程序服务的文件和目录4.程序访问的权限5.内存和其他分配给进程的系统资源进程的状态略进程的创建和结束略进程的组成略进程的调度task_struct结构体的一些组成1.State2.Sheduling Information3.Identifiers4.Inter-Process Communication 信号,管道和信号灯共享内存,消息队列5.Links:进程之间都是相互联系的6.Ti

2022-04-10 15:18:03 635

原创 学生信息管理系统(双向链表)(C语言)

学校要求写学生信息管理系统,写完顺便水一篇博客数据结构是双向链表,Ptial指针永远指向尾节点,head指针永远指向头节点(有一个链表头)要注意的地方:学生成绩我是用了一个,其他我没有用,有文件保存和文件读取,但是保存值针对第一次保存,再次保存的话会出现BUG,保存的txt,第一个信息是学生的数量。排序是选择排序是从大到小排序(可以直接跑,但是诸位要修改许多才能实现直接的功能,希望能帮到各位)学校任务要求1、目的和要求:(1)设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。(2

2021-12-29 11:00:00 2483 1

原创 keil硬件仿真中断和软件仿真中断

买来一个260元J-Link,还以为我可以的很愉快的用硬件调试bug,结果发现我单步调试无法进入外部中断。觉得突然觉得手上的仿真器立刻不香了,觉得自己的仿真器不能这么不值得,然后我上网查阅相关资料,查了好久,发现网上都没有相关教程。然后加了各种技术群,问了很多很多人,在里面没有得到自己想要的答案。然后无奈先学软件调试,然后再慢慢自己摸索发现困扰自己的好几天的问题竟然迎刃而解。首先是在中断函数里面打断点然后J-Link下载然后在按下按键(我的是野火的按键中断),这时灯还没亮,再点击全速运行,它就会在

2021-10-27 22:47:30 3111

原创 关于外部中断遇到的一个问题

1.上周,使用指南者的外部中断,一开始参照网上的代码写,是给对应的IO一个高电平,该IO口检测到对应的电平变化,会触发外部中断,然后跳转到外部中断函数里。在检测对应的硬件没有问题后,然后推测是代码问题。在修改多次代码之后发现是NVIC的配置要在EXTI的外部中断配置之前,否则会出现外部中断我无法进入的问题。2.上周第一次是用J-LINK ,觉得这东西最好用的话是调试bug,直接可以在硬件上面看自己的代码执行到哪里。但是上周遇到一个比较奇怪的问题,我的J-Link无法被keil5所识别,上网查看是没有安装

2021-10-26 16:09:38 533

原创 自己对32的小小总结

原文链接(点击原文链接获取更多学习干货):布尔青年自己对32的小小总结我一开始是破解keil编译器,在网上有相对应的资源。第二是stm32相对应的配置,如首先是芯片包的安装,有相对应的芯片包才能对对应的芯片进行配置,然后是在同一个工程下C文件和头文件的添加。C文件是在左边的框配置的。头文件是在魔法棒下C/C++那里添加路径的。在左边的框里面添加还要添加一个汇编的启动文件。上电之后第一个执行的是汇编的启动文件。再汇编文件跳转到我们所编写C文件里面。(可能新手会觉得有些麻烦)ST在设计芯片的时候其实他们

2021-10-18 19:54:45 63

原创 做平衡小车的收获

原文链接(点击原文链接获取更多学习干货): 布尔青年做平衡小车的收获1.理解引脚复用和什么时候开启复用端口时钟,作为普通IO和用ST默认的引脚功能的话,是不用开启的引脚的复用时钟的。2.一开始还一直以为IIC是一个外设,后来发现IIC是集成在芯片里面的。每一个STM32芯片都有对应的IIC集成电路。3.32的定时器功能很强大,一开始我以为是只是定时的作用,后来发现可以输出PWM波形,扑获外来的脉冲信号,这些的原理都是因为定时器具有定时的功能。4.每一种芯片的启动的汇编文件是不一样的,如小容量的芯片

2021-10-13 20:52:42 313

原创 对于指针的理解(从物理内存来理解)

原文链接(点击原文链接获取更多学习干货): 布尔青年初学指针,老师总说指针就是另一个内存的地址。其实对于这个概念,一开始听老师讲总感觉是似懂非懂。好像明白是什么东西,但是在实际操作中有不清楚是什么东西。其实对于这些概念到学习的计组和数电的时候,觉得在当时在物理内存层面的情况下,初学者对指针的概念会有更好理解(个人拙见)。首先先了解锁存器:link锁存器我们都知道计算机只知道0和1。所以计算机所有的操作在电路里面都是对0和1的收发,运算和存储。在存储中是0和1,对应电路里面是低电平和高电平。所以先了解

2021-10-02 23:15:20 337

原创 FreeRTOS任务调用的大概

阅读完FreeRTOS内核实现与应用开发实战指南,知道FreeRTOS是不涉及文件系统,只是涉及到,内核的任务调用。通篇阅读,我的理解是任务调用是任务的列表项在不同的链表之间插入和删除。

2021-09-17 22:06:36 1290

原创 FreeRTOS学习(临界区的保护)

临界区是因为

2021-09-12 12:02:51 1009

原创 FreeRTOS系统列表和列表项,和任务列表

原文链接(点击原文链接获取更多学习干货): 布尔青年初次看FreeRTOS的列表和列表项是正点原子的视频,两个视频都快看完了,结果发现关于列表和列表项的概念还是一知半解,后来再看野火的FreeRTOS内核实现与应用开发实战指南,才逐渐明白其中的原理。下面就直接上图来理解其中列表与列表组成一个数组,其实有点像是散列表,1,2,3,4,5这些是列表后面的是列表项列表组成的数组又称为就绪列表,是数组下标就是优先级。每个任务由一个TCB——任务控制块和列表项,可以通过列表项找到任务控制块,任务控制块又可

2021-09-04 19:39:25 520

原创 QT聊天案例

form.h#ifndef FORM_H#define FORM_H#include <QWidget>namespace Ui {class Form;}class Form : public QWidget{ Q_OBJECTpublic: explicit Form(QWidget *parent = nullptr); ~Form(); QVector<bool>isShow;private: Ui::For

2021-08-19 11:47:38 296

原创 自助串口调试器

#ifndef FORM_H#define FORM_H#include <QWidget>namespace Ui {class Form;}class Form : public QWidget{ Q_OBJECTpublic: explicit Form(QWidget *parent = nullptr); ~Form();private: Ui::Form *ui;};#endif // FORM_H#ifnde

2021-08-18 22:47:04 81

原创 QT第一个小软件(拿来玩,不喜勿喷)

原文链接(点击原文链接获取更多学习干货):http://blog.bools.cn/archives/1073Qt的一些小坑首先是配置环境里面的问题,如果你在一开始的时候,你什么配置器都下话,创建项目的时候系统默认是下图取消系统默认的,选取下图所示下载的坑,不建议去官方下载,去镜像网站把下载链接复制到迅雷会更快。具体去看其他博主的。form.h//其实没用到它,都是系统默认的#ifndef FORM_H#define FORM_H#include <QWidget>na

2021-08-15 22:35:48 122

原创 LCD学习

LCD的学习基于目前的学习,本人认为LCD里有几点要注意1.向液晶屏写入初始化2.设置液晶显示窗口3.发送像素数据(32只要给LCD写一些指令就可以用,不用来操控寄存器,LCD里面有一个芯片)下面是填写颜色的函数 static __inline void ILI9341_FillColor ( uint32_t ulAmout_Point,uint16_t usColor ) { uint32_t i = 0; /* memory write */ ILI9341_Write_C

2021-08-07 23:04:39 310

原创 野火IIC串口协议,回调函数的理解

野火32IIC串口协议现在的我对协议的一些理解:协议分为好几层,像TCP协议分为六层,IIC分为两层。物理层,我们只能了解,不能改变。我们主要了解的是协议层,并根据协议层来实现我们想要的功能。如协议层过程中哪些寄存器的改变是要注意,并用库函数来改变这些寄存器以辅助我们编程。对底层的了解是很重要的,不然的话,编程会受到一些阻碍IIC协议的物理层和协议层不再赘述,网上有很多资源。这篇博客的重点是在编程过程中提示犯迷糊的点。bsp_i2c_ee.cuint32_t I2C_EE_ByteWrite(u8*

2021-07-31 23:51:18 686 1

原创 32串口通信学习

32串口通信学习本文章主要参考野火指南者教程串口(加上一些自己的理解)编程要点使能 RX 和 TX 引脚 GPIO 时钟和 USART 时钟;初始化 GPIO,并将 GPIO 复用到 USART 上;配置 USART 参数;配置中断控制器并使能 USART 接收中断;使能 USART;在 USART 接收中断服务函数实现数据接收和发送(编程要点来自32野火教程非本人编写)usb.h#ifndef __USB_H#define __USB_H#include "stm32

2021-07-24 23:03:17 176

原创 对C语言的知识的回忆

1.局部变量能否和全局变量重名?可以,但是局部屏蔽全局,要使用全局变量要用::。2.结构体默认的字节对齐一般满足三个准则:1 结构体第一个变量的字节能够被其最宽基本类型成员的大小所整除。2. 结构体每个成员所占的字节都是成员自身大小的整数倍。3.结构体的总大小为结构体最宽基本类型成员大小的整数倍。3.用两个栈实现一个队列的功能?思路:A,B两个站,1.先把数据输入A栈2.再把A栈的数据送入B栈3.B栈再出栈4.C语言程序的内存分配答:一个由 c/C++编译的程序占用的内存分为以下几个

2021-07-15 18:53:04 99

原创 点亮32的第一盏灯

点亮32的第一盏灯(野火指南者开发板)基本思路开启对应灯的时钟初始化相关的灯的结构体固件库函数进行点灯led.h文件创建一个led.h文件在文件里面定义与硬件相关的操作,把底层封装好。同时声明相关的函数。下面是led.h文件的内容#ifndef __LED_H//此处要下划线开头,中间下划线相当于空格(我的理解)#define __LED_H#include "stm32f10x.h"#define LED_G_GPIO_PIN GPIO_Pin_0//绿灯的引脚#d

2021-07-15 10:58:46 214

原创 32初学的一些认识

32初学的一些认识初识32,首先新建32一个工程是比51和Ardunio要麻烦的。认识了32后才。知道Ardunio是封装得非常好的。调用非常方便,底层的东西不用太过关注。学习51的时候,会进一步学习底层。学习32的时候首先认识寄存器编程,这里学(我目前的学的最底层)是直接对寄存器进行操作。有很多时候是需要看芯片手册(觉得这应该是驱动学习)在这一步是很多时候要对地址直接进行操作的。对地址操作的时候很多时候要用到指针(认识到指针的威力)。在这里我觉得参考芯片手册来进行编程是对嵌入式软件工程师的很高的要求(

2021-07-10 19:00:59 164

原创 校园导航系统C语言

``校园导航系统(用了广度优先搜索和最短路径算法)#define _CRT_SECURE_NO_WARNINGS #include<stdio.h>#include<stdlib.h>#include<string.h>#define MAXVnum 33#define INF 60000typedef struct//储存顶点信息{ int NO; char name[20];}Vextpye;//存储名字的节点typedef struct

2021-06-09 21:08:17 5018 8

原创 跳跃表C语言

跳跃表存储结构创造跳跃表节点创造跳跃表搜索节点用了抛硬币思想函数插入节点删除节点展示跳跃表销毁跳跃表主函数存储结构typedef struct skiplistnode{ int num; struct skiplistnode* next[];}skiplistNode;typedef struct skiplist{ int level; int node; skiplistNode* head;}Skiplist;创造跳跃表节点skiplistNode* creatnod

2021-06-02 20:20:10 284

原创 用经纬度来导航

用经纬度来导航先下载两步路户外助手APP点击右上方的跳过![在这里插入图片描述](https://img-blog.csdnimg.cn/20210528175808457.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MjU4OTcyNg==,size_16,color_FFFFFF,t_7![在这里插入图

2021-05-28 18:10:35 2494

原创 简单的散列表(链接法解决冲突)C语言

简单的散列表(链接法解决冲突)实现简单的查询,添加,查找,修改的功能#define _CRT_SECURE_NO_WARNINGS #include<stdio.h>#include<stdlib.h>typedef struct Node{ int data; struct node* next;}node;typedef struct vert{ int a; struct Node* next;}hash;void creat(hash*ver

2021-05-13 14:56:22 138

原创 邻接表的一些操作(C语言)

邻接表的一些操作创建 简单的遍历,删除顶点,增加一个顶点#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Node* next;}node;typedef struct adj{ int vert; node* next;}vertex;typedef struct map { verte

2021-05-09 17:03:55 124

原创 二叉树的一些基本操作C语言

本章包含了二叉树的一些基本操作:创作节点,创建树的过程,前序遍历,拷贝树,,求树的节点,叶子的个数,树的深度,查找树的节点,插入树的节点,删除树的节点,修改节点。(借鉴网上不少的例子)首先是定义节点typedef struct BTtree{ int key; struct BTtree*left,*right;}BT;第二是创建书的根节点(因为这个创建树的节点,导致我创建树的过程有瑕疵,所以我用来一个全局变量来补救)BT*creatroot(){ BT*tree=(BT*)mallo

2021-05-03 22:51:55 101

转载 链队

一个小菜鸡对链队的学习老师还没教到数据结构,大一就先自学了。初看链队,看网上的图示觉得概念还是很简单的。但是看源码的时候还是有点晕的。在后面慢慢看,终是看懂了。下面用链队实现一些基本的功能,同时在下面加一下自己的理解。首先是标记队头和队尾的指针是不同与以往的指针,这个指针是一个指向结构体的指针。指向结构体的指针参考链接: https://www.cnblogs.com/electronic/p/10896510.html功能快捷键撤销:Ctrl/Command + Z重做:Ctrl/Comm

2021-04-24 10:31:43 54

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除