自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git push问题:remote: [session-2c43b6b8] Access denied解决

问题描述:出现这种问题可能是以下几个原因导致的,我们逐个解决,不过如果在刚刚创建一个仓库的时候出现了这种问题,那么及其有可能是Git缓存的凭据过期或损坏导致的。如果你是在新建仓库时出现这个问题,及其有可能是Git缓存的凭据过期或损坏造成的。一般来说都是问题1和问题5造成的。

2024-07-17 14:42:59 330

原创 stm32定时器与pwm波

​ 定时器除了定时以外,还能够产生PWM波。首先我们先来介绍一下PWM波。即脉冲宽度调制pwm波可以简单理解为可以调试占空比的方波。占空比(即脉宽时间占整个周期的比例),整个周期就是一个脉冲信号的时间,而脉宽时间就是高电平的时间。PWM波可以用来模拟不同的输出电压。其原理就是通过不同的占空比比例实现D/A转化。ARR:自动装载值。CRR:决定了占空比,PWM波从CRR处电平反转。

2024-07-05 11:17:34 1030

原创 stm32中断

轮询:即每过一段时间查看一次事件(一直探测),但是仍然可能错过,若事件发生时,轮询未能轮到该事件的函数,那么就错过了。同时效率低下。中断(NVIC):即cpu探测到发生某事后执行某个动作,相比于轮询,他不会一直占用CPU资源,并且避免了像轮询那样错过的情况发生。中断发生后执行什么动作由中断向量表来决定。

2024-07-05 11:12:50 496

原创 FreeRTOS的定时器

FreeRTOS定时器的创建,使用。

2024-07-04 11:16:26 910

原创 FreeRTOS的任务间通信

FreeRTOS,队列,事件组,互斥量,信号量,优先级翻转,优先级继承(priority inheritance)

2024-07-04 11:12:55 1299

原创 FreeRTOS的任务操作

​ 任务的创建不代表任务的执行,任务创建后还需要使用调度器来让任务执行。即vTaskStartScheduler();同时创建任务函数,不等于任务处理函数。他只是创建了任务,但是没有规定任务要做什么。ps:任务控制块地址和任务句柄并不相同,我们操控任务是通过任务句柄操作的,任务句柄最终指向任务控制块。。这也就是为什么我们说,任务这个概念更类似与线程,而不是进程的原因。

2024-07-02 09:01:57 764

原创 FreeRTOS的任务理论

​ 简单来说,任务是指可独立运行的基本执行单元。任务是并发执行的最小单位,每个任务都有自己的代码逻辑和资源。FreeRTOS多任务执行其实是多任务交替执行实现的。实现多任务交替执行的基础是tick中断,滴答中断,周期性的定时器中断。类比Linux,我们可以类比的认为一个任务相当于一个线程,同时,任务也有不同的种类和实现方式,比如说定时器任务等等。​ 在FreeRTOS中,任务具有不同的优先级,不过FreeRTOS中,优先级是与大多数操作系统相反的,,**反之越大,优先级越高。

2024-07-02 08:54:20 1183

原创 FreeRTOS的裁剪与移植

RTOS,GPOS,移植

2024-06-29 16:32:31 1056

原创 GPIO和PIN

​ 单片机有很多的引脚,为了操控每一个引脚,我们对引脚进行分组,例如GPIOA,GPIOB,…,GPIOG等等(Group),这一个组就称为一个GPIO端口,一般一个端口包含十六个PIN引脚[0~15]。(一个引脚占2bits,而stm32是32位的,所以一组是16个)。GPIO引脚具有可复用和重映射的特点。

2024-06-29 16:19:33 615

原创 STM32笔记之NORFLASH,NANDFLASH,EEPROM大体认识

首先我们了解一下内存的分类(从上到下越来越远离cpu,同时单位造价越来越便宜)一般EEPROM,FLASH都用来做单片机的“硬盘”。首先我们来看看EEPROM和FLASH的区别。总的来说,EEPROM和FLASH各有优缺点,选择哪种存储器取决于具体应用的需求。

2024-05-16 16:16:09 539

原创 STM32笔记之stm32命名规则,RCC时钟树,boot启动模式

内部晶振:内部晶振存在于单片机cpu内部,用来在板子刚上电的时候完成初始化工作(例如初始化外部时钟),但是会有温度引起的零漂问题,所以一般在初始化后使用外部晶振。南桥与北桥:各个时钟总线的速率不一样,那么工作起来肯定就会不同步,为了解决这个问题,有的板子上会有南桥,北桥的芯片。stm32单片机启动时,通过控制boot0和boot1两个引脚的电平,有三种常见的启动方式。CubeMx时钟树:相当于人的心跳,为各个部件提供不同的“节奏”。向单片机中烧录的是.elf文件或.bin文件。

2024-05-16 16:11:58 429

原创 Linux下软硬链接的区别

【代码】Linux下软硬链接的区别。

2024-05-06 20:25:12 105

原创 简单介绍IIC通信协议

​ IIC I2C i2c Bus是飞利浦公司推出的,在电子控制领域的通信协议典型的电压准位是3.3v和5v。**IIC 是串行,同步的半双工协议。**IIC的电路简单,连接线少,控制简单,通信速率高。

2024-05-06 20:24:07 904

原创 json库源码阅读

【代码】json库源码阅读。

2024-04-30 21:57:02 1052

原创 串口协议(例如usart,iic,spi)基础概念汇总

同步,异步 同步通信: 异步通信: 串行,并行 串行: 并行: 全双工,半双工,单工 单工: 半双工: 全双工: 电平信号,差分信号 电平信号(TTL): 差分信号: LSB,MSB LSB: MSB:同步,异步

2024-04-30 21:54:13 414

原创 JSON语法,简单介绍。

​ JSON( JavaScript Object Notation,JavaScript对象标记法)是一种轻量级,基于文本,可读的数据交换格式。它是一种字符流的数据交换格式协议。

2024-04-27 11:42:44 246 2

原创 十大经典排序算法之插入排序。

​ 插入排序(Insertion Sort)是一种简单直观的排序算法,它的基本思想是逐步构建最终的排序列表,每次将一个未排序的元素插入到已排序的部分的适当位置。

2024-04-25 23:01:12 261 2

原创 十大经典排序算法之希尔排序。

​ 希尔排序(Shell Sort)是一种改进的插入排序算法,它的基本思想是通过将待排序列表分割成若干个子列表,对每个子列表进行插入排序,然后逐步缩小子列表的间隔,直到间隔为1,最终完成整个列表的排序。接下来我们给出示例代码。

2024-04-25 22:58:49 263 3

原创 十大经典排序算法之选择排序。

​ 选择排序(Selection Sort)是一种简单直观的排序算法,它的基本思想是通过重复从未排序的部分选择最小(或最大)的元素,并将其放到已排序部分的末尾,直到整个列表都排序完成,也就是说,他先把数组先分成了两个部分,一个是有序的,一个是无序的,如果我们是从小到大排序,那么每次都从未排序的部分中找到最小的,然后放到有序的部分中。接下里我们给出一段选择排序的示例c代码。

2024-04-24 22:08:13 298

原创 十大经典排序算法之冒泡排序

​ 冒泡排序(Bubble Sort)是一种简单直观的排序算法,它遍历要排序的列表,一次比较两个相邻的元素,并且如果它们的顺序错误就交换它们(比如从小到大排序时,若4,3。会交换为3,4),直到没有需要交换的元素为止。冒泡排序的名称由于在排序过程中较小或较大的元素会逐渐“浮”到数组的顶端,类似于气泡上浮的过程,所以称为冒泡排序。接下来我们给出冒泡排序的示例c代码。

2024-04-24 22:03:55 752

原创 INI配置,和Iniparser库的基本使用

ini配置文件,Iniparser库的基本使用,函数原型。

2024-04-23 16:41:51 664

原创 IPC进程间通信函数原型总结(方便查询)

进程间通信,函数原型,信号,管道,命名管道,unixsocket,信息量,共享存储,消息队列

2024-04-23 11:09:28 1028

原创 IO多路复用函数原型总结(方便查询)

select,poll,epoll,io多路复用函数原型。

2024-04-23 08:00:00 749

原创 多进程,选项参数实现函数原型总结(方便查询)

fork,vfork,多进程函数原型。

2024-04-23 06:00:00 552

原创 多线程,锁,与syslog系统函数原型总结(方便查询)

多线程,锁,与syslog系统函数原型总结

2024-04-22 12:35:49 665

原创 socket网络编程函数原型总结(方便查询)

socket编程所用到的大部分函数原型

2024-04-22 11:13:41 994

原创 同步,异步,阻塞,非阻塞

非阻塞与阻塞相对应,他不会等待我们,还是某个程序,需要我们去取某一段数据时,若程序是非阻塞的,程序只会询问我们现在处于什么状态了,从内核取没取完数据。需要注意的是,异步和非阻塞是不一样的,例如当我们数据取回来可以使用的时候,异步会给我们发通知,而非阻塞不会,一旦错过了,就是真的错过了。而同步事件我们可以简单的理解为,知道什么时候会发生的事情,例如你的朋友和你约好今天下午五点来找你,我们就明确的知道,五点你的朋友会来找你,类似这样的事件在程序中也叫做同步事件。阻塞很浪漫,即:你不返回,我就一直等你。

2024-04-21 23:54:01 287 1

原创 文件io基础函数总结(方便查询)

文件io,文件目录相关的函数原型总结,方便大家学习和查询。

2024-04-21 22:51:22 574 1

原创 Linux :vim ,gcc ,makefile 三件套之vim的基本使用

​ vim 是 Linux 系统上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版,而 gVim 则是其 Windows 版。它的最大特色是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门变得困难,但上手之后键盘流的各种巧妙组合操作却能带来极为大幅的效率提升。尽管 Vim 已经是古董级的软件,但由于 Vim 的可配置性非常强,各种插件、语法高亮配色方案等多不胜数。

2024-04-21 11:20:10 902 1

原创 valgrind,memcheck的使用

​ valgrind是一个开源的,检测内存泄漏的工具,通常在linux下使用,除此之外,他还能检测内存管理错误,线程bug等错误。粗浅的来讲,valgrind由两部分构成,一部分用来模拟cpu和内核,被称为framework(框架),一部分是他用来检测各种错误信息的插件工具。memcheck:是valgrind最重要的工具之一,是一个重量级的内存检查器,它可以帮我们检测是否有使用未初始化的内存,以及内存泄漏,访问越界之类的问题。callgrind:可以用来统计函数的互相调用情况。memcheck使用。

2024-04-21 11:06:40 933 1

原创 简单介绍物联网MQTT协议

MQTT协议头,QOS服务等级

2024-04-16 19:49:18 714

原创 Linux :vim ,gcc ,makefile 三件套之makefile的基本使用

makefile的基本使用

2024-03-01 18:41:24 450 1

原创 Linux :vim ,gcc ,makefile 三件套之gcc

gcc,编译过程,动态库与静态库

2024-02-29 21:31:18 1642

原创 linux:socket编程

ip,端口,linux,socket通信,socket(),bind(),listen(),accept(),connect()

2023-11-29 15:21:20 305 1

原创 Linux:文件IO基础

文件描述符,标准输入,输出,错误,open(),read(),write(),lseek()。

2023-11-06 16:04:12 72 3

空空如也

空空如也

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

TA关注的人

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