自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 wordpress网站重定向次数过多

1.考虑是DNS设置错误,去控制台删除了不用的DNS解析设置2.安装SSL证书腾讯云教程:https://cloud.tencent.com/document/product/400/35243阿里云教程(更合适):https://help.aliyun.com/document_detail/102450.html3.能进网站了,但显示“Error Establishing a Database Connection”4.设置wordpress数据库:编辑wp-config.php,修改下列信

2022-02-16 21:20:27 2051

原创 #include 作用

#include 是一个预处理指令,作用是寻找指令后面<>或“”中的文件名,并把这个文件的内容包含到当前的文件中,被包含的文件中的文本将替换源代码文件中的#include指令。注意:#include 后面也可以不是头文件。如:// test.hint a = 2;// test.txt1235678// main.c#include "test.h"#inlcude "test.txt"int main(){ return 0;}gcc -E main.c -o

2021-12-15 17:32:26 3032

原创 STM32F103xC, STM32F103xD, STM32F103xE Clock Tree 时钟树高清图

自己打印用的,随手上传了上来。点击这里下载

2021-12-11 19:07:47 412

原创 STM内存分布与MDK:RO、RW、ZI、ROM

一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。Keil 工程在编译完之后,会有相应的程序所占用的空间提示信息,如下所示:linking...Program Size: Code=48008 RO-data=5660 RW-data=604 ZI-data=2124After Build - User command \#1: fromelf --bin.\\build

2021-12-07 16:43:36 831

转载 LeetCode704二分查找

转自代码随想录思路这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用二分法了。二分查找涉及的很多的边界条件,逻辑比较简单,但就是写不好。例如到底是 while(left < right) 还是 while(left <= right),到底是right = middle呢,还是要right = middle - 1呢?大家

2021-10-23 20:35:05 76

原创 力扣151. 翻转字符串里的单词

力扣链接:151. 翻转字符串里的单词这一题我的解法里包含了多个子函数,可以说,这一题里面包含了好几个题目。这种解法思路清晰,容易理解,所以记录下来。C语言版:void swap(char* a, char* b){ char tmp = *a; *a = *b; *b = tmp;}char* reverse(char* s, unsigned int start, unsigned int end){ int i = start; int j =

2021-10-11 15:56:33 141

原创 原码、反码、补码

参考:https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/computercode.html在计算机系统中,数值一律用补码来表示(存储)和运算。int main(){ unsigned char a = 255; char b = a; printf("%d\n", b);}程序输出 -1。是因为:a是无符号的,所以最高位也是数据位,而不是符号位。a的原码、反码、补码均为:1111,1111b = a 这一句只

2021-10-10 19:03:22 71

原创 C语言 | struct(结构体) 和 union(联合体)有什么区别

区别1.struct 的成员存放在不同地址上,union 所有成员存放在同一个地址空间。2.struct 的长度是所有成员所占空间之和,union 的长度是其占用空间最大的成员的长度。引出的几个问题问题1:union 的长度很容易看出来,那么 struct 的长度怎么算?例如,下面应该输出多少?struct Stu{ char sex; int age;};printf("sizeof(struct Stu) = %d\n", sizeof(struct Stu));答案是8。这就

2021-10-01 16:21:26 1657

原创 嵌入式开发板安装madplay播放mp3 - 方法二

使用Buildroot编译madplay把madplay复制到开发板上运行根据错误提示复制所需要的库到开发板上,可以放在开发板的 /usr/lib目录下

2021-09-28 09:48:59 452

原创 Buildroot编译单个模块

进入Buildroot主目录make menuconfig利用 / 搜索模块所在位置利用 Y 选中模块退出make menuconfig 界面make 模块名在 ./output/target/usr/bin 下可找到可执行文件, 可执行文件需要的库可以在./output/target/usr/lib下找到...

2021-09-28 09:46:23 2617

原创 selenium同意浏览器网页获取权限

在用selenium的webdriver打开网页时,可以用Options来提前设置参数,例如:from selenium.webdriver.chrome.options import Optionsfrom selenium import webdriverchrome_options = Options()# 设置无界面运行chrome_options.add_argument('--headless')driver = webdriver.Chrome(executable_path='

2021-09-28 08:28:13 946

原创 常见排序算法代码实例

1.基本概念时间复杂度:https://www.cnblogs.com/wonker/p/11236988.html空间复杂度:https://www.cnblogs.com/wonker/p/11238418.html稳定排序:假设序列中有两个值相等的元素,在排序后,如果这两个元素的相对前后位置没有发生改变,则是稳定排序。例如:int a = {11, 2, a, b,10};其中,a=b=3,排序后a = {2 ,a , b, 10, 11},而不是a = {2 ,b , a, 10, 11}。

2021-09-28 08:26:21 104

原创 alsamixer保存音量设置

首先使用 amixer 设置声卡,然后输入如下命令保存声卡设置alsactl -f /var/lib/alsa/asound.state store没有/var/lib/alsa/asound.state的话就新建一个。执行下面的命令加载配置:alsactl -f /var/lib/alsa/asound.state restore可以打开/etc/init.d/rcS 文件,在最后面追加如下内容: if [ -f "/var/lib/alsa/asound.state" ]; then

2021-09-25 17:53:53 1513

原创 嵌入式开发板如何自动登陆校园网实现上网

使用校园网的时候,需要登陆认证界面才能正常上网,但是开发板并没有浏览器什么的,所以思考是否可以通过别的方法来实现上网。后来便想到了使用抓包的方法。首先笔记本浏览器清除cookie,开启fiddler,然后打开校园网认证界面,登录账号并提交。然后,分析fiddler抓到的包,看看都提交了什么数据。最后,模拟上面的请求,使用程序提交登录数据。这里,我是用的是C语言:#include <stdio.h>#include <sys/types.h>#include <sys

2021-09-25 15:49:47 771

原创 Cloudflare出现521错误 | Wordpress

使用Cloudflare时,配置完成后出现了521错误,官网给出的解决方案如下:试过后并没有用。最后在Cloudflare的设置界面,把SSL设置为flexible后可以正常访问网页。

2021-09-21 20:28:57 3682 1

原创 嵌入式开发板安装madplay播放mp3 - 方法一

说明:按照下面的方法做完后,执行 ./madplay 1.mp3会报错:audio: /dev/dsp: No such file or directory由于我的板子上有aplay,所以可以执行madplay -o wav:- 1.mp3|aplay来播放。madplay及其依赖包下载:链接: https://pan.baidu.com/s/1kDI2w9l77VgX5EQVjXULPw 提取码: pmsc方法来自这里,仅修改了部分内容,记录用。感谢原作者。1.安装zlib用交叉编译工具编译z

2021-09-08 20:44:51 1695

原创 GCC指定自定义头文件路径

gcc编译时,可以使用 -I 指定自定义头文件路径。比如下面的文件结构中,main.c调用了a.h和b.h。test_folder├── input│ └── a.h├── main.c└── output └── b.h那么,命令应为:gcc -o test -I ./input/ -I ./output main.c注意,不能是gcc -o test -I ./input/ ./output否则,会找不到b.h...

2021-09-05 19:56:12 4319 1

原创 GDB调试简易步骤

编译时加入-g选项(必须):gcc -g -o test test.c开始调试:gdb test加入断点:b test.c:10运行:run逐语句:s逐过程:n退出:q更多命令可参考:GDB调试命令详解GDB Tutorial

2021-09-05 16:14:13 223

原创 wordpress设置固定链接后Apache Not Found 404

环境:ubuntu 20.04Apache/2.4.41解决方法输入命令sudo a2enmod rewrite,复制提示的命令,执行命令。sudo vi /etc/apache2/apache2.conf修改框柱的部分为All:保存文件,退出文件。重启apacheservice apache2 restart成功。...

2021-08-28 11:13:27 234

原创 中断中为什么不能sleep | Linux内核

在面试官:为什么在中断里不能sleep | Linux 内核一文中,作者逐层深入地讲解了为什么中断中为什么不能sleep,并给出了ISR 里处理耗时工作的解决办法,建议先行阅读。文中把问题“中断中为什么不能sleep”逐步精确为“为什么在 Linux 里,ISR 被设计成不能睡眠”,讲得很好。但是,对于接下来讲解为什么不能sleep这一部分,(可能是因为我操作系统基础不好)对我来说讲解逻辑却显得不怎么清晰。下面就记录一下自己的理解。结合下图讲解一下。假如系统正在执行thread 1,其中有操作criti

2021-08-28 10:01:24 587 1

原创 wordpress把https改为http

mysql -u root -p进入mysqlshow DATABASE;查看数据库use your_wordpress; 进入数据库select * from wp_options limit 1; 显示你的wp_optionsUPDATE wp_options SET option_value="http://your_domain" WHERE option_name="siteurl";更改为http参考链接:https://blog.csdn.net/weixin_44175439/a

2021-08-25 18:26:41 608

原创 Linux多线程条件变量pthread_cond_wait解析

条件变量的用法Linux条件变量详解:http://c.biancheng.net/view/8633.html里面提到:pthread_cond_wait()函数会以“原子操作”的方式完成“阻塞线程+解锁”或者“重新加锁+解除阻塞”这两个过程(其他教程只提到了“阻塞线程+解锁”这一步是原子操作)。条件变量难点解析Linux 多线程条件变量同步:https://www.linuxidc.com/Linux/2016-11/136664.htm关于linux条件变量的深入探讨:https://mp

2021-08-24 19:07:25 327

原创 NFS挂载时一直没有同步文件

NFS安装后,挂载时有以下注意事项:开发板和Linux应该能互相ping通。在 mount 与 umount(解除挂载)操作时,用户的当前路径不能是操作的目标路径。执行挂载命令,如mount -t nfs -o nolock,vers=3 192.168.0.103:/home/book/nfs_rootfs /mnt时,命令中的IP192.168.0.103和后面的冒号:之间不能有空格。...

2021-08-13 13:56:46 1172

原创 C++ string.find问题

C++ string.find问题1 遇到的问题2 问题答案3 原因分析1 遇到的问题int main(){ string s = "abcbb"; if (s.find('d') < 0) { cout << "未找到" << endl; } else { cout << "找到" << endl; }}运行程序,输出 “找到”。2 问题答案程序改为:int main(){ string s = "abcbb

2021-08-13 12:54:29 382

原创 C++11标准中的alignas

上篇文章中留下了两个问题,这里终于有了答案。C++11标准中,对alignas的说明在这里,这里是中文版。在文档中,并没有提到像网上其他资料说的那样,alignas的参数只能是8,16,32,64,128等,且最小是8。经过上机测试,alignas的参数必须是 2 的幂,也就是说,最小可以是0。写入不是 2 的幂参数会报错。写入参数合法但是小于结构体自身对齐值时,alignas设置无效。#include <iostream>using namespace std;#define f

2021-08-09 13:57:53 1199 1

原创 C语言结构体字节对齐问题

C/C++结构体字节对齐问题1 前言2 举例3.其他1 前言对于结构体字节对齐问题,我发现我一直有一个误区,正是这个误区,给我带来了很大困扰,今天突然顿悟,在此记录一下,希望能帮到大家。2 举例#include <stdio.h>#define field_offset(s,f) (int)(&(((struct s *)0)->f))struct AD { int a; char b[13]; double c;};#pragma pack(push)#prag

2021-08-09 12:58:52 512

原创 Linux 从零写i.mx283A开发板GPIO/LED驱动

1.背景最近在学Linux驱动开发,用的是周立功的i.mx283A开发板。在周立功的驱动教程里,他对GPIO的操作是直接调用的库函数,而我想从寄存器入手来写,这里便记录一下操作过程,更是记录下我解决问题的方法。2.资料准备首先,要准备好i.mx283A的数据手册及开发板的原理图。3.动手写驱动3.1 确定LED引脚首先查看开发板原理图,确定LED所在引脚。这里,我选用了LED1,所在引脚为GPIO3_26。查看开发板原理图以及i.mx283A的数据手册,确定GPIO3_26即为数据手册中的E8

2021-08-06 22:57:13 461

原创 周立功Linux283A开发板使用i2c-tools

1.下载i2c-tools下载地址2.根据自己的开发板设置交叉编译工具链(已经把交叉编译工具链添加到环境变量则不用设置)3.修改Makefile进入i2c-tools目录,vi Makefile4.make执行make USE_STATIC_LIB=1 CC=arm-fsl-linux-gnueabi-gcc5.把生成的可执行文件复制到单板上6.测试如:./i2cdetect...

2021-08-04 21:35:17 189

原创 一文写出Linux串口应用编程

Linux下串口编程,可以使用简单的open ,read, write, close方法,但是没有配置串口属性。所以,更多的我们是需要学习怎么配置串口的数据位、校验位等属性。这里对串口协议,编程方法,函数参数等有极详尽的解释。这里有对函数参数的中文解释。这里有例程,可以帮助你快速写出测试程序。...

2021-08-04 18:41:51 217

原创 TTY驱动框架

转自韦东山嵌入式教程。

2021-08-04 13:30:04 111

原创 ubuntu打开/关闭虚拟终端/dev/tty

Ctrl + Alt + F3-F6打开一个虚拟终端(看到有的博客说Ctrl + Alt + F2也可以,但是我的ubuntu20.04并没有反应)例如:Ctrl + Alt + F3打开一个虚拟终端Ctrl + Alt + F4再打开一个虚拟终端Ctrl + Alt + F1回到图形化界面/dev/ttyS0 电脑串口/dev/tty 某个程序自己的终端。/dev/tty0 前台程序的终端/dev/tty1,/dev/tty2,/dev/tty3……虚拟终端...

2021-08-04 13:27:21 2387

原创 Linux TCP server/client例程

1.服务器端#include<stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <string.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#define SERVER_PORT 8080#define MAX_SERVERS 10int m

2021-08-03 18:45:25 529

原创 韦东山设备信息查询例程学习

1.查询 阻塞机制#include <linux/input.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/ioctl.h>#include <stdio.h>int main(int argc, char **argv){ int fd; int ret; struct input_id

2021-08-02 21:41:07 49

原创 为什么poll/select在open时要使用非阻塞NONBLOCK

1.背景在学习获取设备信息的四种方式(查询,休眠-唤醒,poll,select)时,发现在使用poll和select时,需要在open时使用1O_NONBLOCK1参数。由于我刚开始没注意这个问题,导致实验现象不正常,这里记录一下。2.不使用O_NONBLOCK#include <linux/input.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include

2021-08-02 21:28:48 749

原创 详解判断大小端的方法

1.大小端小端存储:数据低字节保存在低地址中,高字节保存在高地址中。大端存储:数据低字节保存在高地址中,高字节保存在低地址中。2.判断方法这里给出一种常见的方法,代码如下:#include <stdio.h>void test1(void){ union T { int a; char b; }t; t.a = 1; if (t.b == 1) { printf("小端\n"); }

2021-07-30 15:47:44 1680

原创 SPI与IIC异同

1.相同点均采用串行、同步的方式均采用TTL电平,传输距离和应用场景类似均采用主从方式工作2.不同点IIC为半双工,SPI为全双工IIC为2线制,SPI为4线制IIC速度为100Kbps- -3.4Mbps,SPI速度为几MHz - -几十MHzIlC有应答机制,SPI无应答机制IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送片选信号来寻址IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可自己设置...

2021-07-30 10:28:13 1042

原创 UART的奇偶校验

1.奇校验当数据位中“1”的个数为奇数时,校验位为“0”,否则为“1”。2.偶校验当数据位中“1”的个数为偶数时,校验位为“0”,否则为“1”。

2021-07-29 20:00:34 3098

原创 实现常用C语言字符串处理函数

1.strcpy()char *my_strcpy(char *s1, const char *s2){ char* p1 = s1; const char* p2 = s2; while (*p1++ = *p2++) { } return s1;}2.strlen()unsigned int my_strlen(const char* s){ const char* p = s; while (*p++) {

2021-07-29 17:00:44 59

原创 为什么指针做形参没有改变对应的值

1 引例首先看这样一个程序,思考一下它的输出是什么:#include <stdio.h>void test1(int a[], int *p){ p = &a[2];}void test2(){ int a[] = { 1,2,3 }; int b = 5; int* p = &b; test1(a, p); printf("%d ", *p);}int main(void){ test2();}你

2021-07-25 19:52:56 973 1

原创 二叉树常用算法

#include <stdio.h>#include <stdlib.h>#define TElemType inttypedef struct BitNode{ TElemType data; struct BitNode* lchild; struct BitNode* rchild;}BiTNode, *BiTree;void CreatBiTree(BiTree T){ (T)->data = 1; (T)-&

2021-07-25 11:41:10 70

STM32F103xC, STM32F103xD, STM32F103xE Clock Tree 时钟树高清图

STM32F103xC, STM32F103xD, STM32F103xE Clock Tree 时钟树高清图 自己打印用的,随手上传了上来。

2021-12-11

74系列芯片数据手册

里面有238个芯片地数据手册,如74HC00,74HC138,74HC148等等。

2019-01-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除