自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (3)
  • 收藏
  • 关注

原创 使用ubuntu16.04使用清华源:解决sudo apt-get install nfs-kernel-server rpcbind失败的问题

ubuntu版本要使用对应的源,不然sudo apt install xxx 会出现各种各样的问题!注意:当我们换成国内的源的时候,对应的。

2024-03-06 23:42:43 408

原创 vscode remote ssh 连接 ubuntu/linux报错解决方法

我们在使用SSH(安全外壳协议)连接到其他服务器时,可能会遇到一些诸如"REMOTE HOST IDENTIFICATION HAS CHANGED"之类的错误。该错误表示SSH服务器的主要标识已经改变,这可能是因为您的Ubuntu虚拟机已经被重新安装或者是SSH服务的主机密钥被重新生成。这个警告可以防止中间人攻击,因为当服务器的密钥发生变化时,SSH会阻止连接并显示这个警告。完成上述步骤后,你应该能够正常使用SSH来连接到你的虚拟机了。当你再次尝试SSH连接时,系统会提示你是否接受新的公钥。

2024-03-06 22:37:34 543

原创 2023年5-15日凌晨随笔-无题

脑袋很混乱想写些东西,时至今天,我已经来深圳打工五年多了了。社会经验多了不少,然后自己年纪也上来了,金钱的渴望更加强烈了,工作压力不小占用很多事,自己时间不很多,又想赚很多钱,我似乎陷入了一个漩涡无法出来。我只能做到一心做一件事情,因为做一件事情就已经发了我不少时间。2、掌握工作的规律,现在工作处理的杂事越来越多,售前,售后,开会,立项等等。自己写代码的时间被剥夺,自己每天要保证写代码的时间在8个小时。面多我的处境,我觉得我要规划好自己的重要的两点。1、规划金钱,消费要正常,能坐地铁坐地铁,不要打车。

2023-05-15 00:34:59 84

原创 python中子进程相关

python中os.system和os.popen影响顺序执行的根本原因。python中os.system和os.popen的区别。python中子进程的运行机制是什么样子的。

2023-03-06 19:51:33 111

转载 rtthread添加设备驱动的两种方式

RT-Thread-《玩转ART-Pi开发板》第6章 ART-Pi 添加一个串口设备RT-Thread问答社区 - RT-Thread。

2022-11-07 20:28:53 503

原创 嵌入式开发xshell json数据换行问题

选中红框框的地方,然后重启xshell即可。

2022-11-04 18:25:29 180

原创 vim常用按键汇总

H -》 跳当当前屏幕行首。L -》 跳到当前屏幕行尾。

2022-10-18 14:05:31 286

原创 vscode_vim 屏蔽ctrl+其他键

设置 - Vim Configuration - Handle Keys。

2022-10-17 17:49:13 373

原创 信马由缰谈效率

1、提高写代码的速度。2、提高阅读代码的速度。

2022-04-03 11:49:06 227

原创 这个年纪的我

1、这个年纪很尴尬,我这个身体也很尴尬,能睡个好觉。不痛不痒是挺难的。主要不可以理解的是这么多年我是怎么过来的?也没总结点经验,自己硬扛着,到了这个年纪事情多了起来。感觉越来越扛不住了。所以,如何保持精力充沛,如何让自己所处的环境是自己身体所处于最适合的这个必须是要总结的经验,只有这样子才能做其他的事情。2、这个年纪很尴尬,诱惑很多,对这个感兴趣,对那个感兴趣,想要保住饭碗,又想陶冶情操,又想赚大钱,又不想花时间,真是难难难啊,还是先尽力保住饭碗吧,人这一辈子很难说得清楚,也许是我读书少,见识少,目前为

2022-03-14 21:56:03 140

原创 批量16进制转字符串,支持空格输入

#!/usr/bin python3import binasciidef hex_to_str1(s): s=binascii.unhexlify(s) print(s.decode('utf-8')) ## exampke:48 54 54 50 2F 31 2E 31 20 31 30 31 20 53 77 69 74 63 68 69 6E 67 20 50 72 6F 74 6F 63 6F 6C 73 0D 0A 75 70 67 72 61 64 65 3A 20 77 65.

2021-09-30 15:53:49 434

原创 C实现时间戳加减秒数

struct datetime { unsigned short year; /* 年 */ unsigned char mon; /* 月(1 ~ 12) */ unsigned char day; /* 日(1 ~ 31) */ unsigned char hour; /* 时(0 ~ 23) */ unsigned char min; /* 分(0 ~ 59) */ unsigned char sec; /* 秒(0 ~ 59) */};static int datetim.

2021-07-16 09:41:43 741 1

原创 linux内核中的一个简单C库实现(字符串转)

#include "stdio.h"#define is_digit(c) ((c) >= '0' && (c) <= '9')int skip_atoi(const char **s){ int i = 0; while(is_digit(**s)) { i = i * 10 + *((*s)++) - '0'; } return i;}int main(){ const char *ckh1...

2021-06-17 23:34:48 110

原创 我理解的union

目前我觉得的union的唯一用在的地方:总线,设备,驱动,如:struct net_buff { char cmd_sbuf[128]; char cmd_rbuf[2048];};/* 如果每个驱动中都开辟了接收和发送缓存的空间不好 */union net_buff_union { struct net_buff 2G_net_buff_m26; struct net_buff 4G_net_buff_ec20; struct net_buff 4G_net_buff_xxx;..

2020-11-20 10:59:39 123

原创 FLASH和EEPROM存储配置设备信息时可考虑代码可 维护性问题。

假如有这份代码:struct device_config { unsigned int device1_enable; /* 设备1的使能信息 */ unsigned int device2_enable; /* 设备2的使能信息 */ unsigned int device3_enable; /* 设备3的使能信息 */ unsigned int device4_enable; /* 设备4的使能信息 */ unsigned int device1_type; /* 设备1的类.

2020-10-19 16:14:09 197

转载 signal_pending

经常我们在睡眠的代码中 会看到这样的例子: if (signal_pending(current)) { ret = -ERESTARTSYS; return ret; } 关于 -ERESTARTSYS 到底是什么意思? -ERESTARTSYS表示信号函数处理完毕后重新执行信号函数前的某个系统调用.也就是说,如果信号函数前有发生系统调用,在调度用户信号函数之前,内核会检查系统调用的返回值,看看是不是因为这个信号而中断了系统调用.如...

2020-10-19 10:57:08 368

转载 MKDEV宏定义及其主要函数

MKDEV 功能:将主设备号和次设备号转换成dev_t类型cdev结构在Linux2.6内核中一个字符设备用cdev结构来描述,其定义如下:struct cdev { struct kobject kobj; struct module *owner; //所属模块 const struct file_operations*ops; //文件操作结构,在写驱动时,其结构体内的大部分函数要被实现 .

2020-10-19 10:25:44 3951

转载 libevent events management

2020-10-14 16:58:42 87

原创 记录踩过的坑,避免自己再次采坑。

1、参数精度需要从2位参数改为3位精度别人的代码修改:直接从原来的支持2位精度修改为支持4位精度。我的代码修改:从原来的支持2位精度修改为支持3位精度。总结:再一次需求变更时,给了自己增加了裕量。...

2020-10-14 11:28:09 114

原创 第一次用Pythong写比较实用的东西,写了个自动生成C代码Python脚本

'''1、播放时长以ms为单位,用python脚本生成,C代码中也应该这样子写。2、输入的参数: 1、每个语音的命名 2、语音的序号3、脚本输出的内容: 1、地址号 (地址从1开始,下个地址等于上个地址号+播放时长,最后地址号需要四舍五入,并且只保留整数) 2、播放时长(播放时长,单位为ms) 3、生成C语言代码,文件名字保存为voice.h'''import waveimport os.pathimport xlsxwriter #用来写xlsx文.

2020-09-29 14:31:35 650

原创 python读取wav文件的播放时长

import waveimport os.path# 音频存放文件夹相对路径filedir = os.getcwd()# 获取目录下所有文件files = os.listdir(filedir)# 获取目录下所有的WAV文件wav_files = list()for i in files: if os.path.splitext(i)[1] == '.WAV': wav_files.append(i)# 文件名按照数字大小排序wav_files.sort(key.

2020-09-28 16:55:39 947

原创 check_sum校验和函数,返回的是1个字节的数据

/* check_sum校验和函数,返回的是1个字节的数据 */int check_sum(unsigned char *p_data, int len, unsigned char *data){ unsigned char ret_t = 0; if (NULL == p_data || len <= 0) return -1; for (int i = 0; i < len; i++) { ret_t +=...

2020-09-19 14:37:20 1083

原创 批量的十六进制转字符串(ASCII码) shell脚本

#!/bin/bashcat "/qcode.txt"|while read linedo# echo $line | tr -d ' ' str1=`echo $line | tr -d ' '`# echo $str1 str2=${str1#*0031}# echo $str2 qcode=${str2:4:256}# echo $qcode# 批量的十六进制转字符串(ASCII码) I.

2020-09-18 08:40:14 2310 1

原创 16进制的字符串转换为10进制的整数

/* 单个字节转换 */int shex2int(const char *str) { unsigned int len = strlen((const char *)str); int ret; if (len > 2) return -1; sscanf(str, "%x", &ret); return ret;}/* 多个字节转换 */int shex2nint(const char *str, unsigned char *dec, unsigne.

2020-09-17 17:34:11 427

原创 嵌入式开发中通过系统心跳延时的方法,并且处理了溢出的情况(非阻塞延时)

unsigned int delay_timeout(unsigned int enter_timer, unsigned int ms){ unsigned int get_tick = get_systick_time(); unsigned int interval = (get_tick >= enter_timer) ? (get_tick - enter_timer) : (~enter_timer + get_tick); //0xFFFFFFFF + g...

2020-09-09 13:52:02 259

原创 stm32标准库和HAL库获取系统时钟的方法

HAL库uint32_t sysclock = 0;sysclock = HAL_RCC_GetSysClockFreq();标准库 RCC_ClocksTypeDef get_rcc_clock; RCC_GetClocksFreq(&get_rcc_clock);

2020-09-03 17:59:48 6928

原创 #define REPEAT_BYTE(x) 和 #define STACK_MAGIC解析

#define STACK_MAGIC 0xdeadbeef /* 栈顶的位置,是个魔术数字 */#define REPEAT_BYTE(x) ((~0ul / 0xff) * (x))/* 1、(~0ul),u表示unsigned 无符号,l表示long 长整形,~0d对于64位机器0xffffffffffffffff。 2、0xffffffffffffffff / 0xff = 0x0101010101010101 3、假设X为2那么 0x0101010...

2020-08-28 17:20:25 240

原创 前段时间stm32CubeMx生成工程总是空的

1、前段时间stm32CubeMx生成工程总是空的,最后经过多种方法尝试,最后将自己电脑中的JDK13卸载后,再按照JDK8就好了。此处的坑分享给后面的踩坑人。

2020-06-14 18:33:34 646 1

原创 为什么使用snprintf而不使用sprintf

来自Steven的书

2019-12-20 11:04:25 207

原创 Linux设备驱动笔记一

ls /lib/modules //查看当前内核版本uname -r //看是否和上面的一致/*hello.c文件*/#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");stati...

2019-12-17 15:20:09 128

转载 keil中编程宏定义重加u的意思

#define TEMP 0x01u#define TEMP1 0x02uu 就表示unsigned,ul 就表示unsigned long型,也就是无符号的意思。常用在非符号的场景,一是为了防止编译器将它作为有符号数字进行处理,显式声明,以防万一;二是防止编译提醒符合位改变等情况。举例:比如ox8000 这是一个16位的数,如果不加u,有的编译器认为它是个负数,然后右移这个数...

2019-12-14 09:55:15 1564

转载 经典问题解析

1、经典问题解析。 1、const 什么时候是常量,什么时候是变量。 2、const 常量的判断准则。 1、只有字面量初始化的 const 常量才会进入符号表,--真正意义上的常量。 2、使用其他变量初始化的 const 常量依旧是只读变量。 3、被 volatile 修饰的 const 常量不会被放入到符号表(外部,多线程,中断),...

2019-12-06 16:37:51 87

转载 新式类型转换

1、新型的类型转换: 1、C语言的强制类型转换。 1、typedef void (PF) (int); 2、struct Point{ int x; int y; }; 3、int v = 0x1234; 4、PF *pf = (PF *)v; 5、char c = (char )v; 6、Point *p = (Point *)v; 2、C方式强制类...

2019-12-06 16:11:32 124

转载 C++中的新成员。

1、C++中的新成员。 1、动态内存分配。 1、C++中动态内存分配。 2、C++中通过 new 进行动态内存申请。 3、C++中的动态内存申请是基于类型进行的。 4、delete关键字是用来内存释放的。 2、变量申请: Type *pointer = new Type; //... delete pointer; 3、数组申请 Type *pointer ...

2019-12-06 10:15:20 81

转载 1、函数重载分析(下)

1、函数重载分析(下) 1、重载与指针 1、下面函数指针保存哪一个函数的地址? int fun(int x) { return x; } int fun(int a, int b) { return a + b; } ...

2019-12-06 09:51:21 108

转载 函数的重载(上)

1、函数的重载 1、自然语言中的上下文: 洗脸,洗衣,洗脑,洗澡,洗马桶。 2、结论:能和"洗"字搭配的词汇有很多。洗和不同的词汇搭配会有不同的含义。 3、重载的概念(Overload) 1、同一个标识符在不同的上下文有不同的含义。 2、"洗"和不同的词汇搭配会有不同的含义,洗衣服,洗澡,洗车 3、"play"和不同的词汇搭配会有不同的含义,Play chess Play...

2019-12-06 09:31:10 52

转载 函数参数的扩展。

1、函数参数的扩展。 1、函数参数的默认值。 1、C++在函数声明时为函数提供一个默认的参数值。当函数调用没有参数的值的时候,使用默认参数。 代码: void Test(int x = 0); int main() { Test(); return 0; } void Test(int x) { printf("%d",x); } ...

2019-12-06 09:04:04 135

转载 内联函数分析

1、内联函数 1、C++中 const 可以代替宏常量定义。 如: const int a = 3; ==>> #define a 3 既然const 可以代替 宏常量 的定义 是否有其他办法代替 宏代码 呢? 有,内联函数。 2、内联函数。 1、C++中推荐使用内联函数代替宏代码片段。 2、C++中使用 inline 关键字声明内联函数。 代码: ...

2019-12-05 20:15:57 101

转载 引用的本质和分析

1、引用的本质和分析 1、引用的意义: 引用作为变量别名存在,因此在一些场合可以代替指针。 引用相对于指针来说,具有更好的可读性和使用性。 2、举个栗子: swap函数的实现和对比: void swap(int &a, int &b) { ...

2019-12-05 19:53:57 244

转载 布尔类型,三目运算符的扩展,和引用的概念。

1、布尔类型,三目运算符的扩展,和引用的概念。 1、布尔类型: C++中的布尔类型 C++在C语言的类型基础上增加了 bool 类型。 C++可取的值只有 false 和 true。 理论上 bool 只占用一个字节。 注意:false 代表假 在编译器中用0表示。 true 代表真 在编译器中用1表示。 2、printf("sizeof(bool) = %d\...

2019-12-05 17:14:00 229

Mac OS版本TV

Mac OS版本TV

2019-04-18

source insight

source insight 4.0

2019-04-14

arm-linux-gcc交叉编译器

arm-linux-gcc交叉编译器 arm-linux-gcc交叉编译器 arm-linux-gcc交叉编译器 arm-linux-gcc交叉编译器

2018-05-15

空空如也

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

TA关注的人

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