<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Healer19的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Healer19</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Healer19]]></copyright><item><title><![CDATA[Linux中修改系统启动项grub]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/130368255</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/130368255</guid><author>Healer19</author><pubDate>Tue, 25 Apr 2023 18:22:24 +0800</pubDate><description><![CDATA[修改Linux系统默认内核启动顺序时，要参考配置文件/boot/grub/grub.cfg定义的grub，从而修改/etc/default/grub中的GRUB_DEFAULT配置项。]]></description><category></category></item><item><title><![CDATA[Linux内核调试环境(centos+gdb+qemu)]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/125875478</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/125875478</guid><author>Healer19</author><pubDate>Tue, 19 Jul 2022 18:13:01 +0800</pubDate><description><![CDATA[Linux内核调试环境(centos+gdb+qemu)]]></description><category></category></item><item><title><![CDATA[Keil5界面配置]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/123649393</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/123649393</guid><author>Healer19</author><pubDate>Mon, 21 Mar 2022 23:32:23 +0800</pubDate><description><![CDATA[配置一：绿色


# Specification for text selection and caret line
selection.fore=#00FFFF
selection.back=#004000
caret.fore=#FF0000
caret.back=#CDF0D0
 
font.monospace.cpp=Courier New
style.cpp.32=font:Courier New,size:11,fore:#000000,back:#CCE8CF
style.cpp.4=font]]></description><category></category></item><item><title><![CDATA[C语言知识——定义、声明、初始化、赋值概念]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/119117165</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/119117165</guid><author>Healer19</author><pubDate>Mon, 26 Jul 2021 20:09:46 +0800</pubDate><description><![CDATA[定义：确定变量在内存中的位置和大小，即在定义时为变量分配空间

声明：向程序表明变量的类型和名字

初始化：定义变量时赋给变量的值

赋值：给变量赋新的值


int i;   //定义性声明，即使定义也是声明
int i=9;  //初始化
extern int i;   //引用性声明
i=7;    //赋值

变量的声明与定义的区别：

    声明有两种情况：可以在多处声明同一个变量

1)定义性声明：建立存储空间的声明，此时即是声明也是定义

   ...]]></description><category></category></item><item><title><![CDATA[物联网平台的认识]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/118015987</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/118015987</guid><author>Healer19</author><pubDate>Fri, 18 Jun 2021 09:47:11 +0800</pubDate><description><![CDATA[物联网平台的核心功能：设备接入，可再细分为设备管理、协议转换、数据分发等基本功能，其中协议转换针对设备，数据转发针对应用，设备管理将设备和ying'y
]]></description><category></category></item><item><title><![CDATA[Modbus通讯协议]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/117946945</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/117946945</guid><author>Healer19</author><pubDate>Fri, 18 Jun 2021 09:16:05 +0800</pubDate><description><![CDATA[1、Modbus协议简介

   Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议，控制器相互之间、或控制器经由网络（如以太网）可以和其它设备之间进行通信。

   Modbus协议使用的是主从通讯技术，即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master，从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等；典型的从设备如PLC可编程控制器等。

   Modbus通讯物理接口可以选用串口（...]]></description><category></category></item><item><title><![CDATA[排序算法——3直接插入排序算法]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/117448567</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/117448567</guid><author>Healer19</author><pubDate>Tue, 01 Jun 2021 18:25:08 +0800</pubDate><description><![CDATA[插入排序：每一步将一个待排序的数据插入到前面已经排好序的有序序列中，直到插完所有元素为止。

时间复杂度：平均时间复杂度是O(n^2)。

算法步骤： a[5]={3，7，1，8，5}

1)将待排序序列第一个元素看成有序序列，将其他元素当成待排序序列；


			3
			7，1，8，5
		
			有序序列
			待排序序列
		2)取出待排序序列第一个元素[7]，与有序序列的元素[3]从后向前扫描比较。如果有序序列中的元素[3]大于该待排元素，则将有序元素[3]移到下一位置（即待排元素[7]位置...]]></description><category></category></item><item><title><![CDATA[排序算法——2简单选择排序算法]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/117440779</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/117440779</guid><author>Healer19</author><pubDate>Tue, 01 Jun 2021 13:38:45 +0800</pubDate><description><![CDATA[选择排序：

时间复杂度：无论什么数据排序，时间复杂度都是 O(n²) 的时间复杂度。所以用到它的时候，数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。
]]></description><category></category></item><item><title><![CDATA[排序算法——1冒泡排序算法]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/117429006</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/117429006</guid><author>Healer19</author><pubDate>Mon, 31 May 2021 21:24:11 +0800</pubDate><description><![CDATA[如上例：第一趟比较之后，排在最后的一个数一定是最大的一个数，第二趟排序的时候，只需要比较除了最后一个数以外的其他的数，同样也能找出一个最大的数排在参与第二趟比较的数后面，第三趟比较的时候，只需要比较除了最后两个数以外的其他的数，以此类推……在上述算法中，需要逐趟逐次的比较相邻元素的大小，如果待排序的数组中的元素大部分已经是有序的，仍然逐次比较就会比较浪费时间了，所以需要在判断当在某次比较中，各元素的位置没有发生交换时，就说明当前数组元素次序已经是有序的，不用再比较，可以结束冒泡排序。(1)N个元素排序，]]></description><category></category></item><item><title><![CDATA[嵌入式中的通讯协议——UART、I2C、SPI、DMA]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/117401049</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/117401049</guid><author>Healer19</author><pubDate>Sun, 30 May 2021 19:21:37 +0800</pubDate><description><![CDATA[目录

一、通讯的基本概念

二、USART——串口通讯

三、I2C通讯协议

四、SPI通讯协议

五、DMA——直接存储器存取

六、USART/I2C/SPI比较

一、通讯的基本概念

1、串行通讯与并行通讯（按数据的传送方式）

串行通讯：指设备之间通过少量数据信号线(一般是 8 根以下)，地线以及控制信号线，按数据位形式一位一位地传输数据的通讯方式。

并行通讯：指使用 8、16、32 及 64 根或更多的数据线进行传输的通讯方式，同时传输多个数据位的数据。

两者比较：在数据传输速率相同时，]]></description><category></category></item><item><title><![CDATA[C语言系列——const关键字与sprintf()函数]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/112249066</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/112249066</guid><author>Healer19</author><pubDate>Tue, 05 Jan 2021 18:20:49 +0800</pubDate><description><![CDATA[C语言系列——const关键字与sprintf()函数

const关键字

可以修饰变量、数组、指针、函数参数等。

1、修饰变量与数组：

C语言中采用const修饰变量，功能是对变量声明为只读特性，并保护变量值以防被修改。


const int i=10;
const int arry[4]={1,2,3,4,5};

变量i具有只读特性，不能够被更改；若在之后的程序中对i重新赋值，如i = 10；是不被允许的。数组arry[]同样如此。

值得注意的是，定义变量的同时，必须初始化。

此外，co.]]></description><category></category></item><item><title><![CDATA[RGB888转换为RGB565格式]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/112029170</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/112029170</guid><author>Healer19</author><pubDate>Thu, 31 Dec 2020 17:52:55 +0800</pubDate><description><![CDATA[RGB888转换为RGB565格式

RGB888用unsigned int 32位字节存储

0
			0
			0
			0
			0
			0
			0
			0
			R7
			R6
			R5
			R4
			R3
			R2
			R1
			R0
			G7
			G6
			G5
			G4
			G3
			G2
			G1
			G0
			B7
			B6
			B5
			B4
			B3
			B2
			B1
			B0
		
			
			
			
			
			...]]></description><category></category></item><item><title><![CDATA[C语言系列——static关键字]]></title><link>https://blog.youkuaiyun.com/Healer19/article/details/111991484</link><guid>https://blog.youkuaiyun.com/Healer19/article/details/111991484</guid><author>Healer19</author><pubDate>Wed, 30 Dec 2020 20:14:11 +0800</pubDate><description><![CDATA[C语言系列——static关键字

常见用法有三种：

1：用于局部变量的修饰符；

2：用于全局变量的修饰符；

3：用于函数的修饰符。

1、用于局部变量的修饰符

当 static 用于修饰局部变量时，通常是在某个函数体内，只能在该函数内被调用，这样的变量称为局部静态变量。

它的值不会因为函数调用的结束而被清除，当函数再次被调用时，它的值是上一次调用结束后的值。
	变量在程序加载时创建，在程序终止时结束。
	只在编译时初始化一次。如果没有显式初始化，默认初始化为0。

#include &lt;st]]></description><category></category></item></channel></rss>