<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_45948070的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/qq_45948070</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_45948070]]></copyright><item><title><![CDATA[三周从STM32入门linux学习笔记]]></title><link>https://blog.csdn.net/qq_45948070/article/details/115504067</link><guid>https://blog.csdn.net/qq_45948070/article/details/115504067</guid><author>qq_45948070</author><pubDate>Tue, 04 May 2021 13:23:48 +0800</pubDate><description><![CDATA[u-boot编译步骤：

解压缩

	tar -xjf u-boot-1.1.6.tar.bz2


打补丁

	patch -p1 &lt; ../u-boot-1.1.6_jz2440.patch


配置

	make 100ask24x0_config


编译

	make


]]></description><category></category></item><item><title><![CDATA[Makefile函数]]></title><link>https://blog.csdn.net/qq_45948070/article/details/115439984</link><guid>https://blog.csdn.net/qq_45948070/article/details/115439984</guid><author>qq_45948070</author><pubDate>Mon, 05 Apr 2021 12:14:47 +0800</pubDate><description><![CDATA[foreach：$(foreach var,list,text)

例子：A = a b c
B = $(foreach f, $(A), $(f).o)
all:
@echo B = $(B)

执行结果：

filter:		#在text中取出附和patten格式的值
fileter-out:#在text中取出不符合patten格式的值$(filter pattern…,text)
$(filter-out pattern…,text)

例子：A = a b c
B = $(foreach f, $.]]></description><category></category></item><item><title><![CDATA[Makefile基本规则]]></title><link>https://blog.csdn.net/qq_45948070/article/details/115433594</link><guid>https://blog.csdn.net/qq_45948070/article/details/115433594</guid><author>qq_45948070</author><pubDate>Mon, 05 Apr 2021 11:29:56 +0800</pubDate><description><![CDATA[make [目标]
若没有目标，默认第一个目标
1.通配符：
$@ 表示目标
$&lt; 表示第一个依赖文件
$^ 表示所有依赖文件
2.假想目标：
.PHONY:            不会被文件影响
3.及时变量、延时变量、export
简单变量（及时变量）：

...]]></description><category></category></item><item><title><![CDATA[gcc常用选项]]></title><link>https://blog.csdn.net/qq_45948070/article/details/115431819</link><guid>https://blog.csdn.net/qq_45948070/article/details/115431819</guid><author>qq_45948070</author><pubDate>Sun, 04 Apr 2021 19:57:07 +0800</pubDate><description><![CDATA[编译过程：预处理、编译、汇编、连接


-v：查看gcc编译器的版本，显示gcc执行时的详细过程
gcc -v：查看gcc编译器的版本


-E：只预处理，不会编译、汇编、链接
gcc -E -o hello.i hello.c


-S：只编译，不会汇编、链接
gcc -S -o hello.s hello.i


-c：编译和汇编，不会连接
gcc -c -o hello.o hello.c


-o：连接
gcc -o hello hello.o






后缀名
语言种类
后期操作




.c
]]></description><category></category></item><item><title><![CDATA[一点基本的汇编指令]]></title><link>https://blog.csdn.net/qq_45948070/article/details/115429785</link><guid>https://blog.csdn.net/qq_45948070/article/details/115429785</guid><author>qq_45948070</author><pubDate>Sun, 04 Apr 2021 16:44:16 +0800</pubDate><description><![CDATA[1.LDR(load)：读内存命令
LDR r0, [r1]		//假设r1的值是x，读取地址x上的数据(四个字节)，保存到r0中
2.STR(store)：写内存命令
STR r0, [r1]		//假设r1的值是x，把r0的值写到地址x(四个字节)上
3.B：跳转
4.MOV：移动
MOV r0, r1 		//吧r1的值赋给r0
5.LDR(伪指令，他会被拆分为几条真正的RAM指令)
LDR r0, =0x12345678		//r0 = 0x12345678
6.add、sub:
add r0, r]]></description><category></category></item><item><title><![CDATA[STM32 DMA配置过程库函数操作]]></title><link>https://blog.csdn.net/qq_45948070/article/details/115332066</link><guid>https://blog.csdn.net/qq_45948070/article/details/115332066</guid><author>qq_45948070</author><pubDate>Tue, 30 Mar 2021 18:41:40 +0800</pubDate><description><![CDATA[DMA全称Direct Memory Access(直接存储器访问)。主要功能就是将一个地址空间复制到另一个地址空间，作用就是为CPU减负
DMA配置过程
1.使能DMA时钟
2.初始化DMA通道参数
3.使能串口DMA发送，串口DMA使能函数
4.使能DMA1通道，启动传输
5.查询DMA传输状态
6.获取/设置通道当前剩余数据量
//DMA_CHx:DMA通道CHx
//cpar:外设地址
//cmar:存储器地址
//cndtr:数据传输量
void MYDMA_Config(DMA_Channel_]]></description><category></category></item><item><title><![CDATA[STM32 ADC转换库函数操作]]></title><link>https://blog.csdn.net/qq_45948070/article/details/113425240</link><guid>https://blog.csdn.net/qq_45948070/article/details/113425240</guid><author>qq_45948070</author><pubDate>Sat, 30 Jan 2021 13:08:04 +0800</pubDate><description><![CDATA[初始化ADC步骤：
1.使能GPIOA、ADC1时钟
2.配置ADCCLK时钟6分频或者8分频
3.初始化GOIOA
4.初始化ADC1
5.使能ADC1
6.使能复位校准、开启AD校准
获取ADC转换结果：
1.配置规则通道
2.使能指定的ADC1的软件启动功能
3.等待转换结束
4.返回ADC1转换获取的结果
adc.c:
#include "adc.h"
#include "delay.h"

//ADC初始化
void Adc_Init(void)
{
	GPIO_InitTypeDef GPIO_]]></description><category></category></item><item><title><![CDATA[Python列表简单介绍及简单应用（三）]]></title><link>https://blog.csdn.net/qq_45948070/article/details/113146720</link><guid>https://blog.csdn.net/qq_45948070/article/details/113146720</guid><author>qq_45948070</author><pubDate>Tue, 26 Jan 2021 14:59:32 +0800</pubDate><description><![CDATA[列表推导式



ord函数将字符转换为ASCALL码

提取二层列表中的第二个值

提取对角线的值


二层列表用列表推导式创建

列表推导式可在后面加if条件语句。列表推导式先执行for语句再执行if语句再执行前面的


...]]></description><category></category></item><item><title><![CDATA[Python列表简单介绍及简单应用（二）]]></title><link>https://blog.csdn.net/qq_45948070/article/details/113144039</link><guid>https://blog.csdn.net/qq_45948070/article/details/113144039</guid><author>qq_45948070</author><pubDate>Mon, 25 Jan 2021 22:18:39 +0800</pubDate><description><![CDATA[二维列表



下图两个存储方式不同，第一个方法可行，第二个方法不可行


具体存储方式：









深拷贝


]]></description><category></category></item><item><title><![CDATA[Python列表简单介绍及简单运用（一）]]></title><link>https://blog.csdn.net/qq_45948070/article/details/113140752</link><guid>https://blog.csdn.net/qq_45948070/article/details/113140752</guid><author>qq_45948070</author><pubDate>Mon, 25 Jan 2021 21:44:05 +0800</pubDate><description><![CDATA[创建列表
arr = [1, 2, 3, 4, 5]






切片：


列表的增删改查







只能删除找到的第一个元素，如果不存在则会报错

删除下标为2的元素

删除所有元素


替换多个元素


查找有多少个3或4




查找绿巨人的索引值

把绿巨人替换成神奇女侠

从第三个位置开始找到第九个位置，返回找到4的位置




...]]></description><category></category></item><item><title><![CDATA[STM32通用定时器输入捕获库函数操作]]></title><link>https://blog.csdn.net/qq_45948070/article/details/113094017</link><guid>https://blog.csdn.net/qq_45948070/article/details/113094017</guid><author>qq_45948070</author><pubDate>Sun, 24 Jan 2021 17:44:44 +0800</pubDate><description><![CDATA[配置定时器
void TIM_Cap_Init(u16 arr, u16 psc)
{
	GPIO_InitTypeDef GPIO_InitStrue;//初始化GPIO结构体
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStrue;//初始化TIM结构体
	TIM_ICInitTypeDef TIM_ICInitStrue;//初始化输入捕获结构体
	NVIC_InitTypeDef NVIC_InitStrue;//初始化NVIC分组结构体
	
	RCC_APB1]]></description><category></category></item><item><title><![CDATA[STM32通用定时器PWM库函数操作]]></title><link>https://blog.csdn.net/qq_45948070/article/details/113076876</link><guid>https://blog.csdn.net/qq_45948070/article/details/113076876</guid><author>qq_45948070</author><pubDate>Sun, 24 Jan 2021 11:50:39 +0800</pubDate><description><![CDATA[GPIO_InitTypeDef GPIO_InitStrue;//GPIO初始化结构体
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitSture;//定时器初始化结构体
	TIM_OCInitTypeDef TIM_OCInitStrue;//PWM初始化结构体
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_TIM1, ENABLE);//使能GPIOA、TIM1时钟
	
	GPIO_In]]></description><category></category></item><item><title><![CDATA[STM32通用定时器库函数操作]]></title><link>https://blog.csdn.net/qq_45948070/article/details/113055253</link><guid>https://blog.csdn.net/qq_45948070/article/details/113055253</guid><author>qq_45948070</author><pubDate>Sat, 23 Jan 2021 16:06:08 +0800</pubDate><description><![CDATA[void TIM3_Int_Init(u16 arr, u16 psc)
{
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitSture;//定时器初始化结构体
	NVIC_InitTypeDef NVIC_InitStrue;//中断优先级设置结构体
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//初始化时钟
	
	TIM_TimeBaseInitSture.TIM_Prescaler = psc;//预分]]></description><category></category></item><item><title><![CDATA[java匿名内部类]]></title><link>https://blog.csdn.net/qq_45948070/article/details/112790122</link><guid>https://blog.csdn.net/qq_45948070/article/details/112790122</guid><author>qq_45948070</author><pubDate>Mon, 18 Jan 2021 17:55:17 +0800</pubDate><description><![CDATA[匿名内部类特点：
匿名内部类是没有名称的内部类，没办法引用它们。必须在创建时，作为new语句的一部分来声明并创建他们的实例
匿名内部类不许继承一个类或者实现一个接口，所有父类是抽象类，则匿名内部类必须实现其所有抽象方法

abstract class Demo1{
	abstract void printInfo();
}

interface Demo2{
	abstract void interprint();
}

public class Test {
	public static void mai]]></description><category></category></item><item><title><![CDATA[java内部类]]></title><link>https://blog.csdn.net/qq_45948070/article/details/112789297</link><guid>https://blog.csdn.net/qq_45948070/article/details/112789297</guid><author>qq_45948070</author><pubDate>Mon, 18 Jan 2021 17:46:01 +0800</pubDate><description><![CDATA[内部类：
将一个类定义在另一个类的内部，这个类称之为内部类
public class Outer{
	class Inner{
	}
}

内部类的主要特点：
内部类可以很好的实现隐藏，可以使用protected private修饰符
内部类可以直接访问外部类的所有成员，包括私有成员
外部类不能直接访问内部类的成员，必须首先建立内部类的对象才能访问
成员内部类：
成员内部类属于外部类的实例成员，成员内部类可以有public private default protected权限修饰符。在成员内部类中访问外部]]></description><category></category></item><item><title><![CDATA[java接口]]></title><link>https://blog.csdn.net/qq_45948070/article/details/112788748</link><guid>https://blog.csdn.net/qq_45948070/article/details/112788748</guid><author>qq_45948070</author><pubDate>Mon, 18 Jan 2021 17:13:05 +0800</pubDate><description><![CDATA[接口语法：
interface 接口名{
	//共有静态常量、抽象方法
}

接口特点：
接口中只能存放静态常量和抽象方法
java接口是对功能的拓展
通过实现接口，java类可以实现多实现
一个类可以同时继承一个父类并且实现多个接口
接口与接口之间可以使用extends实现继承
接口与抽象类的区别：
抽象类和具体实现之间是一个继承关系，也就是如果采用抽象类的方式，则父类盒子类在概念上应该是相同的
接口和实现类在概念上不要求相同，接口知识抽取相互之间没有关系的类的共同特征，而不去关注类之间的关系，他可以是没]]></description><category></category></item><item><title><![CDATA[java抽象类]]></title><link>https://blog.csdn.net/qq_45948070/article/details/112787805</link><guid>https://blog.csdn.net/qq_45948070/article/details/112787805</guid><author>qq_45948070</author><pubDate>Mon, 18 Jan 2021 16:52:16 +0800</pubDate><description><![CDATA[抽象类：
java中可以定义没有方法体的方法，该方法有子类来具体实现
该没有方法体的方法我们称之为抽象方法，含有抽象方法的类我们
称之为抽象类
抽象方法特点：
只有方法头没有方法体
抽象方法用abstract修饰
抽象方法代表一种不确定的操作或行为
抽象方法不能被调用
抽象类特点：
定义中含有抽象方法的类叫做抽象类
抽象类用abstract修饰
抽象类代表一种抽象的对象类型
抽象类不能被实例化
抽象类中可以有具体方法，可以没有抽象方法

abstract class Demo1{
	abstract pub]]></description><category></category></item><item><title><![CDATA[java方法重写]]></title><link>https://blog.csdn.net/qq_45948070/article/details/112786013</link><guid>https://blog.csdn.net/qq_45948070/article/details/112786013</guid><author>qq_45948070</author><pubDate>Mon, 18 Jan 2021 16:07:13 +0800</pubDate><description><![CDATA[方法重写：
方法重写指子类可以根据需要对从父类继承来的方法进行改写，是多态机制的前奏
注意点：
重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值
重写方法不能比重写方法有更严格的访问权限
父类中的私有方法不能被重写
在子类重写的方法中继续调用父类被重写的方法可以通过super.函数名获取

class Person{
	String name;
	private String address;
	
	public void printInfo() {
		System.out.println("]]></description><category></category></item><item><title><![CDATA[java方法重载]]></title><link>https://blog.csdn.net/qq_45948070/article/details/112785519</link><guid>https://blog.csdn.net/qq_45948070/article/details/112785519</guid><author>qq_45948070</author><pubDate>Mon, 18 Jan 2021 15:48:39 +0800</pubDate><description><![CDATA[class Student{
	private int age;
	String name;
	double score;
	
	Student(){
		System.out.println("构造方法一被调用");
	}
	
	Student(int newage, String newname){
		System.out.println("构造方法二被调用");
		age = newage;
		name = newname;
	}
	
	Student(int newage, String n.]]></description><category></category></item><item><title><![CDATA[java构造方法]]></title><link>https://blog.csdn.net/qq_45948070/article/details/112785196</link><guid>https://blog.csdn.net/qq_45948070/article/details/112785196</guid><author>qq_45948070</author><pubDate>Mon, 18 Jan 2021 15:43:46 +0800</pubDate><description><![CDATA[构造方法负责对象初始化工作，为对象的属性复合式的初始值
语法规则：
构造方法名与类名一致
没有返回类型
构造方法调用
实例化对象时自动被调用

class Student{
	private int age;
	String name;
	double score;
	
	Student(int newage, String newname, double newscore){//构造方法
		System.out.println("构造方法被调用");
		age = newage;
		name = n]]></description><category></category></item></channel></rss>