<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Easadon的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Easadon</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Easadon]]></copyright><item><title><![CDATA[ubuntu 16.04 安装openjdk1.7]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/110949065</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/110949065</guid><author>Easadon</author><pubDate>Thu, 10 Dec 2020 11:16:30 +0800</pubDate><description><![CDATA[编译安卓5.0源码需要openjdk1.7版本，

ubuntu 16.04自带的openjdk为1.8或1.9

说到安装，第一反应就是

sudo apt-getinstallopenjdk-7-jdk

那么恭喜你，喜提报错一个



如何解决？娓娓道来



sudo add-apt-repository ppa:openjdk-r/ppa  
sudo apt-get update   
sudo apt-get install openjdk-7-jdk 
 



选择正确版本

su...]]></description><category></category></item><item><title><![CDATA[有坑踩一踩  一  除数为0]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/108885482</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/108885482</guid><author>Easadon</author><pubDate>Wed, 30 Sep 2020 15:10:41 +0800</pubDate><description><![CDATA[今天分享一下一个C++程序的坑

在填坑之前，大家先比对一下下面三个程序的内容和输出：







相信大家从小学开始，老师就教我们，0是不可以作为除数的，那么上面的程序，第一个和第三个为什么可以正常运行，还能输出结果呢？

在这里，可能需要涉及到一个小小的知识点，就是double类型或者float类型的0，在内存中的存储，其实并不是真正的0，而已一个极其小的数，所以，当一个整数除以一个极其小的数时，得到的结果就是一个极大数。


...]]></description><category></category></item><item><title><![CDATA[TCP/IP socket通信简单案例]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/108434231</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/108434231</guid><author>Easadon</author><pubDate>Sun, 06 Sep 2020 17:39:54 +0800</pubDate><description><![CDATA[server.cpp


#include &lt;iostream&gt;
#include &lt;sys/types.h&gt;          /* See NOTES */
#include &lt;sys/socket.h&gt;
#include &lt;string.h&gt;
#include &lt;arpa/inet.h&gt;
#include &lt;netinet/in.h&gt;
#include &lt;unistd.h&gt;
using namespace std;

]]></description><category></category></item><item><title><![CDATA[QT-按下按钮实现页面跳转]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/108400571</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/108400571</guid><author>Easadon</author><pubDate>Fri, 04 Sep 2020 11:54:12 +0800</pubDate><description><![CDATA[情景导入

    当我们在做应用时，一般都会遇到需要跳转页面的情况，按下一个按钮，跳转到对应的功能界面 ；或者需要进行角色选择，选择不同的角色，进入不同的界面。

今天就用QT简单实现一下上述内容

内容描述
（1）设计三个界面：主界面、用户界面、管理员界面

（2）主界面描述：一个下拉框，实现角色的选择，一个登录按钮，点击后跳转到对应的界面

（3）管理员界面：一个返回按钮，点击后返回主界面

（4）用户界面 ：一个返回按钮，点击后返回主界面

效果图

（1）主界面



（2）选择角色 ...]]></description><category></category></item><item><title><![CDATA[QT学习 http ----获取天气Json信息并解析以及下载文件并保存]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/108266030</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/108266030</guid><author>Easadon</author><pubDate>Thu, 27 Aug 2020 18:00:58 +0800</pubDate><description><![CDATA[1
]]></description><category></category></item><item><title><![CDATA[QT学习 实时显示时间]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/108242973</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/108242973</guid><author>Easadon</author><pubDate>Wed, 26 Aug 2020 17:15:28 +0800</pubDate><description><![CDATA[今天完成一个实时显示时间的小demo

先上DJ先上DJ

先看一下效果



以两种形式显示当前具体时间

先附上代码，再总结一下核心代码

（1） myweather.ui文件

创建一个Label，ObjectName值为text；创建一个LCD Number，ObjectName为lcd。

分别用于两种形式的显示

     

（2） myweather.h文件


#ifndef MYWEATHER_H
#define MYWEATHER_H

#include &lt;QMai...]]></description><category></category></item><item><title><![CDATA[QT 信号和槽 简单实例]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/108222966</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/108222966</guid><author>Easadon</author><pubDate>Tue, 25 Aug 2020 16:12:08 +0800</pubDate><description><![CDATA[QT中使用信号和槽的机制完成对象之间的协同操作。

信号可以理解某一动作或者时间的发生（触发），槽的话，也可以理解为另一个动作，原则上这两者都是函数

举个例子：

门铃响了（发射信号），去开门（执行槽）

水开了（发射信号），关掉火（执行槽）



我们通过一个简单的实例，来进行理解。首先自定义一个槽，完成某个动作（槽一般使用slots关键字进行修饰）；设置一个按钮，将按钮按下作为信号。

接下来，我们看一下具体代码

先创建一个工程，各代码如下

main.cpp


#include "widget.]]></description><category></category></item><item><title><![CDATA[OpenCV学习--读取视频帧并保存]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/108144219</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/108144219</guid><author>Easadon</author><pubDate>Fri, 21 Aug 2020 11:44:55 +0800</pubDate><description><![CDATA[#include &lt;opencv2/opencv.hpp&gt;

#include &lt;stdio.h&gt;
#include&lt;iostream&gt;
#include &lt;string&gt;  

using namespace std;
using namespace cv;

int main()
{
    VideoCapture cap(0);
    VideoWriter wri;

    //将从设备或文件获得的帧写入指定的视频文件中
    string .]]></description><category></category></item><item><title><![CDATA[OpenCV学习--读取视频，保存为灰度视频]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/108128160</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/108128160</guid><author>Easadon</author><pubDate>Thu, 20 Aug 2020 17:39:48 +0800</pubDate><description><![CDATA[先上DJ 先上DJ

先上代码


#include &lt;opencv2/opencv.hpp&gt;
#include &lt;iostream&gt;
using namespace std;
using namespace cv;

int main(int, char **)
{
	Mat in_frame, out_frame;
	const char win1[]="Grabbing...", win2[]="Recording...";
	double fps=30;//每秒的帧数
	..]]></description><category></category></item><item><title><![CDATA[Linux下统计程序、函数、代码运行时间]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/107840887</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/107840887</guid><author>Easadon</author><pubDate>Thu, 06 Aug 2020 15:32:28 +0800</pubDate><description><![CDATA[这阵子在做项目，需要从内核态获取数据，但是感觉读取的很慢，所以就想看看进行一次系统调用需要多少时间

这时候需要输出一下程序的运行时间或者某一行代码的具体运行时间，看下是不是在系统调用上花了很多时间

1. 统计整个程序的运行时间，可以用time命令


#time ./test

real    0m2.913s
user    0m0.012s
sys     0m0.508s

使用time命令，后面接可执行程序，便会显示所需时间



2.使用clock（）进行统计


#include&lt;s.]]></description><category></category></item><item><title><![CDATA[OpenCV入门之读取和写入图像文件]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/107712768</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/107712768</guid><author>Easadon</author><pubDate>Fri, 31 Jul 2020 16:29:51 +0800</pubDate><description><![CDATA[本文通过http://c.biancheng.net/view/1790.html学习，总结并修改了一部分bug

OpenCV 基本 API 概念

Mat 类是存储和操作 OpenCV 中图像的主要数据结构。这个类是在 core 模块中定义的。OpenCV 已经实现了对于这些数据结构自动分配和释放内存的机制。但是，当数据结构共享相同的缓冲存储器时，程序员仍然应该特别注意。
例如，赋值运算符并没有从一个对象（Mat A）到另一个对象（Mat B）复制内存内容；而只是对其引用（相应内容的存储地址）的复制..]]></description><category></category></item><item><title><![CDATA[C语言制作编译动态链接库]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/107664129</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/107664129</guid><author>Easadon</author><pubDate>Wed, 29 Jul 2020 15:02:54 +0800</pubDate><description><![CDATA[最近做项目的时候，需要跟人工智能组对接应用接口，要把写好的C函数给Python代码调用，所以打算把写好的代码制作成动态库，给他们直接import，随手记录一点相关知识

1.概念

程序的函数库一般就是：静态函数库、共享函数库以及动态加载函数库

函数库一般来说编译集成了一系列我们要使用的接口（函数），程序源代码编译完成之后有一个链接环节，会通过链接器与使用到的函数库进行链接。

静态函数库的话，事实上就是在程序在链接时整个库会一起编译进目标文件中，而动态函数库则不会，只是编译进去一个链接（符号），这种有点]]></description><category></category></item><item><title><![CDATA[VCC、VDD、VSS的区别]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/107021398</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/107021398</guid><author>Easadon</author><pubDate>Mon, 29 Jun 2020 15:34:57 +0800</pubDate><description><![CDATA[1.VCC：C即为circuit， 表示电路, 即接入电路的电压；
2.VDD：D即为device ，表示器件的意思, 即器件内部的工作电压；
3.VSS：S即为series， 表示公共连接的意思，通常指电路公共接地端电压。

一般VCC &gt; VDD，VSS=GND



一般来说VCC=模拟电源,VDD=数字电源,VSS=数字地,
...]]></description><category></category></item><item><title><![CDATA[Python-批量修改文件名]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/106838165</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/106838165</guid><author>Easadon</author><pubDate>Thu, 18 Jun 2020 16:47:33 +0800</pubDate><description><![CDATA[1.新建一个文本文档，重命名为***.py，用编辑软件打开

2.输入如下代码


import os
import re
import sys
path = r"C:\Users\admin\Desktop\helo"  #这里的引号里面放你要修改的文件所在的目录的绝对路径   
fileList = os.listdir(path)  # 待修改文件夹

os.chdir(path)  # 将当前工作目录修改为待修改文件夹的位置
num = 1  # 名称变量

for fileName in file]]></description><category></category></item><item><title><![CDATA[Python加载图片并显示]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/106762732</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/106762732</guid><author>Easadon</author><pubDate>Mon, 15 Jun 2020 15:04:19 +0800</pubDate><description><![CDATA[最近需要涉及python的项目，所以今天就下了一下python的相关环境

1.python（也可以不装这个，因为我自己用的是Anaconda，集成了更多的库）

https://www.python.org/downloads/release/python-383/

本人下载的3.8.3版本，觉得下载执行安装包会更方便，可以直接在安装的过程中选择添加PATH变量（少做一点工作）



2.Pycharm

安装后需要破解

3.Anaconda

http://www.2234.cn/soft/2715]]></description><category></category></item><item><title><![CDATA[Proteus - 51最小系统 - 流水灯实验]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/106241110</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/106241110</guid><author>Easadon</author><pubDate>Wed, 20 May 2020 17:52:39 +0800</pubDate><description><![CDATA[现在开始学习单片机的仿真了，一般用的都是Proteus软件

第一次使用，先画了一个单片机最小系统练练手，加上流水灯代码，做一个简单的实验，

在此把流程做一个简单的介绍

1.建立工程之后，选择相应的设备，所需要的设备如图所示，大家自行添加

   

2.画图，自己画的原理图如下，模块之间的连线采用线标模式



3.把代码烧录，并仿真

双击芯片，选择对应的 .hex文件



4.效果







5.代码附录


#include "reg52.h"

sbit led0 = P2^0;...]]></description><category></category></item><item><title><![CDATA[STM32F103 之TFT显示屏动态显示数据]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/106237208</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/106237208</guid><author>Easadon</author><pubDate>Wed, 20 May 2020 16:09:43 +0800</pubDate><description><![CDATA[之前有个朋友问过，stm32在使用TFT显示屏的时候，知道如何显示一个数据，但是类似传感器这种数据的显示，是需要实时显示的，但是不知道如何刷新，他一开始使用的是clear()清屏函数，确实有点暴力，但是效果不咋地，而且网上查了一下也似乎没有很好的解答。

于是我自己去试了一下，其实我之前也不怎么用显示屏的，所以具体其他方法我也没有深入研究，不过通过查看了显示屏的一些封装函数，想到了一种解决方案，就是在显示时使用叠加模式，显示数据之后，加一个延时，画上一个遮挡区域，再显示下一个数据，这样就可以实现显示屏上显示]]></description><category></category></item><item><title><![CDATA[Kconfig 学习]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/105292690</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/105292690</guid><author>Easadon</author><pubDate>Fri, 03 Apr 2020 16:04:01 +0800</pubDate><description><![CDATA[结合RT-Thread的qemu-vexpress-a9讲讲Kconfig文件和Kconfig语法

1.简介

RT-Thread 借助 Kconfig 文件生成的配置文件 rtconfig.h 来配置系统，Kconfig 文件是各种配置界面的源文件。当在 bsp 目录下使用 env 工具执行 menuconfig 命令时会出现 RT-Thread 系统的配置界面，所有配置工具都是通过读取当前 ...]]></description><category></category></item><item><title><![CDATA[STM32F103C8T6 串口发送字符串]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/105143512</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/105143512</guid><author>Easadon</author><pubDate>Fri, 27 Mar 2020 16:04:09 +0800</pubDate><description><![CDATA[不同开发板的封装可能不同，所以涉及到引脚号的配置，大家应该自行根据芯片资料去设置

1.创建一个新工程

2.导入对应的包



main.c源代码如下：

都是比较基础的，关键在USART_GetFlagStatus（）函数的使用

（大家根据代码做修改，代码已经经过测试的）


#include "stm32f10x.h"
#include "stm32f10x_usart.h"
 
#de...]]></description><category></category></item><item><title><![CDATA[stm32F407 连接 对射式红外对管 样例]]></title><link>https://blog.youkuaiyun.com/Easadon/article/details/104849979</link><guid>https://blog.youkuaiyun.com/Easadon/article/details/104849979</guid><author>Easadon</author><pubDate>Fri, 13 Mar 2020 22:20:08 +0800</pubDate><description><![CDATA[本次样例，是利用 Led 灯来作为红外对管的显示，串口打印作为协助

stm32F407开发板上有两个led灯，DS0和DS1

所以需要编写的代码涉及：led.h、led.c、hong.c、hong.h、main.c （串口代码已集成）        

直接上代码：

led.h


#ifndef __LED_H
#define __LED_H
void LED_Init(...]]></description><category></category></item></channel></rss>