<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a20132848的博客]]></title><description><![CDATA[仅仅是个人在初学中的一些总结。]]></description><link>https://blog.youkuaiyun.com/a20132848</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a20132848]]></copyright><item><title><![CDATA[Qt LINK2019，外部无法解析的符号]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/102528655</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/102528655</guid><author>a20132848</author><pubDate>Sat, 12 Oct 2019 23:43:23 +0800</pubDate><description><![CDATA[1.日常报错，无法在ui设计好的控件在cpp中找到，将项目里的shadow去掉

2. 无法解析的外部符号：没有实现某个函数。

终极方法

如果怎么改都改不成功（无法解析的外部符号），那么就新建一个APP项目，将原来的项目里的cpp、h、ui文件全部复制到新的APP项目里，将原来的.pro文件中的内容复制到新的.pro中，再重新编译。亲测成功。
...]]></description><category></category></item><item><title><![CDATA[I2C寄存器控制]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/100528253</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/100528253</guid><author>a20132848</author><pubDate>Tue, 03 Sep 2019 22:55:46 +0800</pubDate><description><![CDATA[/* 设置寄存器启动传输 */
   /* 1. 配置为 master tx mode */
 IICCON |= (1&lt;&lt;7); /* TX mode, 在ACK周期释放SDA */
 IICSTAT = (1&lt;&lt;4);
  
 /* 2. 把从设备地址写入IICDS */
 IICDS = msg-&gt...]]></description><category></category></item><item><title><![CDATA[ARM裸机编程]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/100186568</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/100186568</guid><author>a20132848</author><pubDate>Sun, 01 Sep 2019 19:24:16 +0800</pubDate><description><![CDATA[1.指令

  ldr: 伪指令，读取内存，任意数

  mov：只能使用4个字节的立即数

 str：从前面的保存到后面的数


.text
.global _start
_start:
    ldr r1, = 0x100
    ldr r0, = 0x12345678
    str r1, [r0]

 编译成斌文件：


arm-linux-gcc -c -o le...]]></description><category></category></item><item><title><![CDATA[排序算法总结]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/100181200</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/100181200</guid><author>a20132848</author><pubDate>Sun, 01 Sep 2019 15:29:47 +0800</pubDate><description><![CDATA[1.冒泡排序 vector&lt;int&gt; data1 = { 9, 1, 6 , 8, 9}; for (int i = 0; i &lt; data1.size() - 1; i++) { for (int j = i; j &lt; data1.size() - 1; j++) { if (data1[j] &gt; data1[j + 1]) { swap(data1[j], data1[j + 1]); } } } 2. 快速排序 主要是，取第一个作为哨兵temp，然后从后面的开始left喝]]></description><category></category></item><item><title><![CDATA[Qt5设置widget背景图片]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/99407159</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/99407159</guid><author>a20132848</author><pubDate>Tue, 13 Aug 2019 09:28:46 +0800</pubDate><description><![CDATA[#include &lt;QPixmap&gt;
#include &lt;QPalette&gt;
#include &lt;QBitmap&gt;



    QPixmap bgImage("://timg.jpg");
    QPalette bgPalette = this-&gt;palette();
    bgPalette.setBrush(QPalette::Backgr...]]></description><category></category></item><item><title><![CDATA[学习笔记(01):linux3.4.2内核下的I2C驱动-3.4.2内核下的I2C驱动之框架编写代码]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/98073965</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/98073965</guid><author>a20132848</author><pubDate>Thu, 01 Aug 2019 16:36:39 +0800</pubDate><description><![CDATA[立即学习:https://edu.youkuaiyun.com/course/play/3826/67452

1.注册设备i2c_client

1.1 总线方式i2c_board_info信息有名字和设备地址。

1.2 i2c_register_board_info(将其放入__i2c_board_list链表) list_add_tail(&amp;devinfo-&gt;list, &amp;__i...]]></description><category></category></item><item><title><![CDATA[编译内核时注意。]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/97560994</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/97560994</guid><author>a20132848</author><pubDate>Sat, 27 Jul 2019 21:48:43 +0800</pubDate><description><![CDATA[1.将make时一定要全部加ARCH=arm


make ARCH=arm nanopi2_linux_deconfig


make ARCH=arm menuconfig


make ARCH=arm
]]></description><category></category></item><item><title><![CDATA[Qt5之信号的重载]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/97294217</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/97294217</guid><author>a20132848</author><pubDate>Thu, 25 Jul 2019 20:09:57 +0800</pubDate><description><![CDATA[在信号中重载My_signal,其重载函数为


void My_Signal();
void My_Signal(int, QString);


在使用connect函数时，需要区别两个带有重载参数的函数。用static_cast强制转换。


static_cast&lt;void (Widget1::*)()&gt;(&amp;Widget1::My_Signal)


static_c...]]></description><category></category></item><item><title><![CDATA[ARM使用I2C。]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/96482299</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/96482299</guid><author>a20132848</author><pubDate>Fri, 19 Jul 2019 15:46:28 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
#include &lt;unistd.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;linux/i2c.h&gt;
#include &lt;sys/ioctl.h&gt;
#include &lt;linux/i2c-dev.h&gt;
#inclu...]]></description><category></category></item><item><title><![CDATA[arm-linux   smart4418使用gpio]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/93388508</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/93388508</guid><author>a20132848</author><pubDate>Sun, 23 Jun 2019 17:31:24 +0800</pubDate><description><![CDATA[研究了一段时间的gpio，arm上的gpio不像树莓派上可以直接用wiringPi的库直接使用。这个gpio需要配置内核或者直接写入寄存器的方式进行操控。下面就以两种方法使用gpio，简单介绍寄存器，详细的记录一下配置内核的方法。

1. 寄存器


寄存方式得需要用户手册才能使用。主要是查询各个gpio的地址，其中包括控制寄存器的地址和数据寄存器的地址。

其主要流程为下：

1. 写入16位数...]]></description><category></category></item><item><title><![CDATA[基于ARM的内核编译与安装]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/92015851</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/92015851</guid><author>a20132848</author><pubDate>Fri, 14 Jun 2019 22:45:32 +0800</pubDate><description><![CDATA[1. make menuconfig 选择要编译的模块。在arm平台下编译不需要添加参数，若在i386下编译时需要添加arch = arm；gcc = arm-linux-gunihf等。

2. make bzImage.产生的文件在arm/boot/下。

3. make modules

4. make modules_install;

5. mkinitrd /boot/initrd.i...]]></description><category></category></item><item><title><![CDATA[linux历史版本内核下载方法。]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/90754387</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/90754387</guid><author>a20132848</author><pubDate>Mon, 03 Jun 2019 16:37:11 +0800</pubDate><description><![CDATA[光从官网上找到的是没有历史版本的直接下载选项的，只有通过终端或者采用输入网址的方法才能得到。

直接将后面内核的版本号修改即可。

修改方法：

1. 查看linux内核版本号： uname -a

2. 对照官网官网地址修改自己的地址。

https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.49.tar.xz改为https://cdn....]]></description><category></category></item><item><title><![CDATA[数据结构之二叉树建立与遍历。]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/90666283</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/90666283</guid><author>a20132848</author><pubDate>Wed, 29 May 2019 10:28:28 +0800</pubDate><description><![CDATA[通过前序建立二叉树，采用三种方法实现对树的遍历。


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

typedef struct node
{
	char data;
	node* lchild;
	node* rchild;
}*Bitree, BitreeNode;

void cr...]]></description><category></category></item><item><title><![CDATA[linux下sudo apt-get update失败 reading lists error解决办法]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/90577905</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/90577905</guid><author>a20132848</author><pubDate>Sun, 26 May 2019 17:06:56 +0800</pubDate><description><![CDATA[当Reading package lists... Error!失败时，采用


sudo rm /var/lib/apt/lists/* -vf

就会删除已经坏掉了的文件，再次重新update即可。
]]></description><category></category></item><item><title><![CDATA[数据结构之循环队列]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/90518259</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/90518259</guid><author>a20132848</author><pubDate>Fri, 24 May 2019 16:10:32 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

#define MAXQSIZE 100

struct sQueue
{
	int* base;
	int front;  //类似于数组的元素。
	int rear;
};

//创建新循环队列
void InitQueue(sQueue* Q)
{
	Q-&gt;base = (int*...]]></description><category></category></item><item><title><![CDATA[数据结构栈创建。]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/90453205</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/90453205</guid><author>a20132848</author><pubDate>Wed, 22 May 2019 22:04:30 +0800</pubDate><description><![CDATA[注意在声明完指针之后需要初始化。


#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#define STACK_SIZE  20
#define APPEND_SIZE  20

struct stack_t
{
	int* base;
	int* top;
	int stacksize;
};

//压入数据
void Push(stack...]]></description><category></category></item><item><title><![CDATA[双向链表创建。]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/90452682</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/90452682</guid><author>a20132848</author><pubDate>Wed, 22 May 2019 21:34:41 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
struct NodeL 
{
	NodeL *prior;
	int data;
	NodeL *next;
};

int main()
{
	NodeL *pa = new NodeL;
	NodeL *pb;
	pa-&gt;prior = NULL;
	NodeL* Head = pa;
	scanf("%d", &amp;pa-&gt...]]></description><category></category></item><item><title><![CDATA[关于Qtcreator 无法定位输入点于.exe的问题解决方案。]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/89065845</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/89065845</guid><author>a20132848</author><pubDate>Sun, 07 Apr 2019 10:22:50 +0800</pubDate><description><![CDATA[主要是设置环境变量就可以。
	首先要看自己的debug采用的哪种编译器。
	打开Qt，点击左下角Debug选项。查看自己的选择。例如我当时安装了三种。选择的是第一种MinGW64.
	打开自己的Qt安装路径。例如我的是F:\Qt\5.12.1，打开5.12.1文件夹（该文件夹是自己安装的版本号），里面会有几个当时安装的编译器。
	
	进入minggw73_64文件夹，将其目录下的bin文件夹添加...]]></description><category></category></item><item><title><![CDATA[Qt在arm上的安装及arm-linux-gcc安装。]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/89055655</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/89055655</guid><author>a20132848</author><pubDate>Sat, 06 Apr 2019 15:03:44 +0800</pubDate><description><![CDATA[最近在smart4418上安装Qt时，一直报错。未发现arm-linux-g++问题。以前版本的Qt是在维基百科上下载的。维基百科地址。

属于那种sudo ./install.sh然后安装到最后没有arm-linux-g++。

针对这种情况，有两种解决办法：




安装arm-linux-g++，从网上下载arm-linux-gcc安装包，csdn上有，没上传成功。将其解压到自己的文件夹，...]]></description><category></category></item><item><title><![CDATA[C++函数中的输入以及如何使用总结]]></title><link>https://blog.youkuaiyun.com/a20132848/article/details/82940655</link><guid>https://blog.youkuaiyun.com/a20132848/article/details/82940655</guid><author>a20132848</author><pubDate>Thu, 04 Oct 2018 21:45:57 +0800</pubDate><description><![CDATA[1.输入的是数组的名称 ：

     int f(int arr[])类型 arr等于数组第一个元素的地址： arr == &amp;arr[0]


int f(int arr[]); //输入的是数组的名称即指针。

int main()
{
    int arr[5] = {0};
    f(arr);
}


int f(int arr[])
{
    arr...]]></description><category></category></item></channel></rss>