<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Hello_Ray的博客]]></title><description><![CDATA[GIT地址  https://gitee.com/cnhellorui]]></description><link>https://blog.youkuaiyun.com/Hello_Ray</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Hello_Ray]]></copyright><item><title><![CDATA[torch中数组使用技巧]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/127170937</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/127170937</guid><author>Hello_Ray</author><pubDate>Wed, 05 Oct 2022 11:48:32 +0800</pubDate><description><![CDATA[torch中的数组高级用法]]></description><category></category></item><item><title><![CDATA[双边带抑制载波传输]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/123895346</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/123895346</guid><author>Hello_Ray</author><pubDate>Fri, 01 Apr 2022 20:30:37 +0800</pubDate><description><![CDATA[双边带抑制载波传输（DSB-SC）
双边带抑制载波传输（DSB-SC）是通过幅度调制（AM）使得频率关于载波频率对称分布，且将载波电平降低到最低程度（理想情况下完全抑制）的传输方式。
在DSB-SC调制中，与AM不同的是，不会传输载波；因此，大部分功率分布在边带，这意味着相同的功率下，DSB-SC比AM能够传输的基带信号能量更高。
DSB-SC传输是双边带减幅载波传输的一种特殊情况。它用于无线电数据系统。
频谱
DSB-SC从根本上说是无载波的调幅，因此减少了功率的浪费，让它的效率达到了50%。这相对于最大]]></description><category></category></item><item><title><![CDATA[vs code一键编译运行cmake项目]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/123613364</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/123613364</guid><author>Hello_Ray</author><pubDate>Sun, 20 Mar 2022 16:01:57 +0800</pubDate><description><![CDATA[首先需要安装mingw-w64与cmake组件，如果是ubuntu环境下，这个过程一条命令即可完成，在windows下需要安装包来进行。vs code官网建议使用 msys2 来进行，不建议使用，因为我遇到很多问题，不是cmake问题，要么就是make问题。
安装mingw-w64
https://sourceforge.net/projects/mingw-w64/files/ 安装的时候如果安装MinGW-W64-install.exe这个文件时候会出现mingw-w64 the file has be]]></description><category></category></item><item><title><![CDATA[vs code中的类似${workspaceFolder}的变量的解释]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/123522502</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/123522502</guid><author>Hello_Ray</author><pubDate>Wed, 16 Mar 2022 12:23:42 +0800</pubDate><description><![CDATA[背景介绍
Visual Studio Code支持Debugging和Task配置文件中的变量替换，以及一些选择设置。这些变量如 ${workspaceFolder} , ${workspaceFolderBasename}, ${fileWorkspaceFolder}。而且这些变量应用的非常普遍，然而我们一直无法准确知道这些变量在运行中到底表达什么含义，如果能在调试的时候将他们输出打印出来，就会能够更好的配置我们的项目。
背景介绍
如下图vs code打开路径/home/chenrui/Document]]></description><category></category></item><item><title><![CDATA[IDA pro与x64dbg地址对齐]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/122407879</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/122407879</guid><author>Hello_Ray</author><pubDate>Mon, 10 Jan 2022 16:02:45 +0800</pubDate><description><![CDATA[在使用IDA pro静态分析32位和64位程序时候，起始地址都是标准的从00400000、0000000140000000开始，这种基地址也是标准的地址。
然而在使用x64dbg的动态调试的时候，它的起始地址竟然不是从0x00400000或0x0000000140000000开始的。这对于使用IDA静态分析然后根据x64dbg动态调试的方式来说，是一个不小的困难。
因为IDA pro我分析好了程序结构，x64dbg中直接到这地方的反汇编代码，使用00000001400010FB作为地址是显然不行的。

我们]]></description><category></category></item><item><title><![CDATA[傅立叶级数到傅立叶变换推导与理解]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/121970903</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/121970903</guid><author>Hello_Ray</author><pubDate>Mon, 20 Dec 2021 21:38:55 +0800</pubDate><description><![CDATA[前言
本文记录这几天我所学习的 傅立叶级数 至 傅立叶变换的推导过程，以及阐述在傅立叶变换的过程中，一些参数在数字信号处理过程中所表达的物理意义，帮助自己能够更好的回复。
级数与傅立叶级数
傅立叶变换
离散傅立叶变换
简略说快速傅立叶变化、傅立叶变换关系及应用
代码演示附件

...]]></description><category></category></item><item><title><![CDATA[I2C通信与解码笔记]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/121386029</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/121386029</guid><author>Hello_Ray</author><pubDate>Thu, 18 Nov 2021 21:11:10 +0800</pubDate><description><![CDATA[void I2C_Start(void)
{
	I2C_SDA=1;
	I2C_SCL=1;
	I2C_SDA=0;
	I2C_SCL=0;
}

void I2C_Stop(void)
{
	I2C_SDA=0;
	I2C_SCL=1;
	I2C_SDA=1;
}


]]></description><category></category></item><item><title><![CDATA[VB程序窗口的移除]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/121175101</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/121175101</guid><author>Hello_Ray</author><pubDate>Sat, 06 Nov 2021 10:37:41 +0800</pubDate><description><![CDATA[本文以Crackme160中的第二个 Afkayas.1 程序为例子阐述如何找到关键函数与关键跳。
工具IDA pro，x32dbg，PEiD
查壳
使用PEiD，将待检测的程序  Afkayas.1  拖入其中，如下图的红框显示，是一个VB程序，没有壳。

查找关键函数call与关键跳
根据程序运行的结果看，如果是失败会有一个弹框，可以知道在弹框的附近就是关键call和关键跳的位置。在visual c++的程序中弹框的函数一般类似MessageBox，在VB程序中是rtcMsgBox（如果不知道准确的名称]]></description><category></category></item><item><title><![CDATA[RC电路一阶线性微分方程]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120794669</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120794669</guid><author>Hello_Ray</author><pubDate>Sat, 16 Oct 2021 12:23:26 +0800</pubDate><description><![CDATA[电路中一阶线性微分方程
在高等数学中，一阶微分方程求解过程需要先算出齐次的通解，然后再根据初始条件算出特解，计算与推理过程很是复杂。在我们学习电路的时候再遇到这个东西时，会因为之前复杂的求解方式严重打击自信心，加之老师说数学在电路中应用是非常广泛的，对于RC电路中存在这个一阶线性微分方程，已经成为拦路虎。
本文将从另一个角度讲解一阶微分方程在电路中的应用，让你感觉到数学在此次的RC电路中，充其量就是个计算方法的引荐或者是一个工具，电路中有一套自己的方法对待这个，而且解法固定，没有套路（态度真诚），只需知道一]]></description><category></category></item><item><title><![CDATA[51单片机中断笔记]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120740425</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120740425</guid><author>Hello_Ray</author><pubDate>Wed, 13 Oct 2021 11:32:08 +0800</pubDate><description><![CDATA[理解中断
在软件开发的过程中，比如有一个线程正在执行，突然有个紧急任务执行，那么哪个线程先停一下，然这个紧急任务执行完它才执行。
在硬件中，中断也是这种意思，如果有紧急任务，其他的任务先放一放，先干这个紧急任务。
中断笔记
如下图






...]]></description><category></category></item><item><title><![CDATA[51单片机的定时任务]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120732599</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120732599</guid><author>Hello_Ray</author><pubDate>Tue, 12 Oct 2021 21:56:34 +0800</pubDate><description><![CDATA[51单片机定时任务中有两个寄存器理解，TMOD和TCON；掌握了TMOD和TCON功能后，就可以游刃有余的进行定时与计数，同时可以控制定时与计数任务的开与关。

TMOD是设置使用什么类型的寄存器，设置多少计数与定时时间


TCON寄存器是表示寄存器的开与关，以及什么时候被关掉

如下图是51单片机定时与计数使用到的相关寄存器；TMOD与TCON相互配合决定了定时器的模式选择与啥时候开与关闭。
其中计算时钟，比如从某个数数到FFFFH这个值时，是要通过Timer 0和Timer 1寄存器来完成的。
我们又]]></description><category></category></item><item><title><![CDATA[单片机串行传递数据]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120730088</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120730088</guid><author>Hello_Ray</author><pubDate>Tue, 12 Oct 2021 19:19:19 +0800</pubDate><description><![CDATA[模式一与模式三的波特率计算公式



]]></description><category></category></item><item><title><![CDATA[windows软件进行反汇编修复流程]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120700148</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120700148</guid><author>Hello_Ray</author><pubDate>Mon, 11 Oct 2021 12:30:44 +0800</pubDate><description><![CDATA[本文以Crackme160为例子，示例文件都在该例子中https://gitee.com/cnhellorui/Crackme160
节一
前言与总结
该节里只需x64dbg即可，windows 7和windows 10，xp都可以。
该节中修复掉那个弹框关键做法：找到关键call，找到关键跳。
找到关键call的目的是：确定你所看到的那个弹框或者事件，在反汇编代码的哪个位置发生的，那么你知道那个事件在哪里发生的后，你所想要修复的逻辑就在他的附近。幸运汇编语言按行一条一条执行，找到那个关键call后，那个逻]]></description><category></category></item><item><title><![CDATA[keil与vs code开发C51单片机]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120592443</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120592443</guid><author>Hello_Ray</author><pubDate>Sun, 03 Oct 2021 10:49:33 +0800</pubDate><description><![CDATA[keil编译器是ARM官方提供的单片机开发的程序，对于代码的调试，编译有着很好的支持。然而，蛋疼的是代码编辑环境就像记事本一样，不能进行代码补全提示，不能语法检查，不能对代码引用进行索引。
如果有vs code自动补全索引，还有部分语法检查，再加上keil的良好调试与编译功能；c51单片机开发会变得非常高效顺手。
如下就是相关的配置步骤，注意vs code的添加h头文件依赖，以及部分诸如sbit，sfr变量的提前定义。
keil先创建一个工程，vs code打开创建的工程
keil创建完了一个工程后，在操作]]></description><category></category></item><item><title><![CDATA[Windows环境使用CLion进行Android NDK开发配置]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120588496</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120588496</guid><author>Hello_Ray</author><pubDate>Sat, 02 Oct 2021 20:32:35 +0800</pubDate><description><![CDATA[下载软件与系统相关配置
下载安装CLion 2021.2.2版本
下载安装Android Studio最新版本，如下图进入设置，然后下载最新版本的NDK和CMake

进入Android Studio下载的SDK，SDK包含了Android开发的所有套件以及依赖，包含了C++, Java等以来都在这里。

下载完成了Android SDK后，Android中的adb一些组件加入操作系统的环境变量，这样的目的是我们可以在命令行使用adb这些组件了。

我们在windows系统中的命令行界面敲入adb，就能正常]]></description><category></category></item><item><title><![CDATA[数字电路逻辑-或与非的公式]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120468672</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120468672</guid><author>Hello_Ray</author><pubDate>Sat, 25 Sep 2021 11:38:51 +0800</pubDate><description><![CDATA[基本定律
求反规则： 1‾=0\overline{1} = 01=0； 0‾=1\overline{0} = 10=1
常变量规则：0⋅A=00 \cdot A = 00⋅A=0，1⋅A=A1 \cdot A = A1⋅A=A； 1+A=11 + A = 11+A=1，0+A=A0 + A = A0+A=A
重叠律：A⋅A=AA \cdot A = AA⋅A=A； A+A=AA + A = AA+A=A
互补律：A⋅A‾=0A \cdot \overline{A} = 0A⋅A=0； A+A‾=1A + \]]></description><category></category></item><item><title><![CDATA[电路原理-三级管与mos管的理解与应用]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120423360</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120423360</guid><author>Hello_Ray</author><pubDate>Thu, 23 Sep 2021 10:26:46 +0800</pubDate><description><![CDATA[理解mosfet管
如下图左边nmos管，右边是pmos管。mos管上的黑色是金属氧化物（是绝缘的）。mos管知道这么多就可以了。

对于nmos管，如果我们在金属氧化物上加正极电压，那么p型半导体中存在的电子（理解为带负电荷玩意）向金属氧化物的周围靠近。也就形成了如下图的样子。

根据上图的表示，相当于在两个N型半导体中又连上了一个N型半导体。如果在两边通上电，那么就像导体一样可以导电工作了。那么我们查看一下nmos管的应用。
nmos的使用
打开multisim，使用nmos做一个开关，把led小灯点亮]]></description><category></category></item><item><title><![CDATA[电路原理-电容应用与理解]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/120097996</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/120097996</guid><author>Hello_Ray</author><pubDate>Sat, 04 Sep 2021 12:16:09 +0800</pubDate><description><![CDATA[本文采用multisim仿真，分析二极管，电容，运算放大器以及三极管在电路中所承担的作用，已经通过这些元器件后，电路的电压波形情况。通过这些分析，能够快速理解并掌握这些元器件的作用。

...]]></description><category></category></item><item><title><![CDATA[记录spark本地开发的历程]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/118469589</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/118469589</guid><author>Hello_Ray</author><pubDate>Sun, 04 Jul 2021 23:47:03 +0800</pubDate><description><![CDATA[本地使用scala开发spark，首先需要安装和配置scala，spark以及hadoop环境。
scala安装
在scala官网下载，https://www.scala-lang.org/download/ 我选择的是scala 2.13版本，下载完成后，scala配置到系统的path中去，配置方法像jdk那种。
spark和hadoop环境安装
下载spark的地址：http://spark.apache.org/downloads.html ，入下图所示，我下载是图中的spark-3.0.3-bin-]]></description><category></category></item><item><title><![CDATA[汇编语言中的16进制与2进制快速转换方法]]></title><link>https://blog.youkuaiyun.com/Hello_Ray/article/details/117260475</link><guid>https://blog.youkuaiyun.com/Hello_Ray/article/details/117260475</guid><author>Hello_Ray</author><pubDate>Tue, 25 May 2021 17:59:45 +0800</pubDate><description><![CDATA[背景
目前很少博客说明16进制与2进制直接转换的博客，16，10，2进制它们的相互转换又是在生产实践中用处又非常广泛，且很重要。本文根据16进制与2进制的规律，帮助我们快速的理解掌握2进制、16进制、10进制相互转换的过程。
内容
16进制，2进制，10进制对照表
0001 1  &nbsp;&nbsp;&nbsp;1000 8
0010 2  &nbsp;&nbsp;&nbsp;1001 9
0011 3  &nbsp;&nbsp;&nbsp;1010 A  &nbsp; 10
0100 4  &nbsp]]></description><category></category></item></channel></rss>