自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 我自己对公钥,私钥,加密,解密,验签,签名的理解

数据加密,解密,验签,签名

2023-03-02 10:21:12 1427 3

原创 ubuntu18.04下vscode代码空格不明显(太小)

安装新的ubuntu后在code中空格的长度太小,难以辨识,可以安装firacode字体来解决。我有试过其他的办法,比如在设置->首选项->输入font然后在空格中输入monospace,并没有什么作用可以修改ubuntu的字体来解决***firacode***字体安装1.更新可用软件包列表: sudo apt update;2.通过安装/升级软件来更新系统: sudo apt upgrade;3.安装字体管理器: sudo apt install font-manager;4.

2021-02-24 12:01:51 1311 2

原创 string类型转换为char*

标准库string类提供了3个成员函数来从一个string得到c类型的字符数组,:c_str(),data(),copy(p,n);1.c_str()是Borland封装的String类中的一个函数,它返回当前字符串的首地址。换种说法,c_str()函数返回一个指向正规c字符串的指针常量,内容与本string串相同。这是为了与c语言兼容,在C语言中没有string类型,因此必须通过string类对象的成员函数c_str()把string对象转换成c中的字符串样式。2.c_str()的原型是:co

2021-01-26 11:49:07 3059 1

原创 C语言linux实现图标统一闪烁

问题的原因在最近的工作中,遇到这么一个问题,客户提出我们的指示灯闪烁频率不一致,明明是一起收到的can信号但是却出现了闪烁不统一的情况。(这里我先讲一下,这个c语言闪烁灯是怎么一回事,因为我们的项目是基于嵌入式的,而且就是一块表上放置图片并使图片显示和不显示,即打开和关闭,图片可以用来表示车机仪表上的指示灯)解决办法首先我们需要一个获取时间的函数uint32_t ClusterGetWorldTimeMS(){ struct timespec t; clock_gettime(CLOCK

2021-01-21 15:42:36 277

原创 定义一个变量想要在多个.c文件中全局共享使用

@定义一个变量想要在多个.c文件中全局共享使用针对c语言首先,在.h文件中添加extern 关键词声明全局变量。然后,在.c文件里定义全局变量,变量定义不要和声明放在一起,即不要放到头文件里。在c文件里定义,在头文件里extern。比如mode.hextern int InitFinish;mode.cint InitFinish = 0;mode2.cmode3.cinclude "mode.h"...

2021-01-11 16:00:25 1347

原创 vmware无法连接mks

使用vmware时候,屏幕显示在win+R打开运行窗口,输入services.msc,打开服务列表找到vm开头右键属性,把手动改为自动并点击应用启动。

2020-12-14 09:18:56 348

原创 C语言float,double保留两位小数

float sp = 36.51647; sp=( (float)( (int)( (sp+0.005)*100 ) ) )/100;挺实用的。double也可以。

2020-11-16 13:48:17 6631

原创 特殊加法

要求写一个函数两个正整数相加,函数中不能使用加减乘除四则运算符号#include <bits/stdc++.h>using namespace std;void add(int A,int B){ int sum,carry; do{ sum = A^B; carry = (A&B)<<1; A = sum; B = carry; }while(B!=0); prin

2020-11-11 15:24:03 177

原创 execl的特殊使用

一个项目,在装车的时候出现偶然黑屏的情况,因为底层的linux的操作系统,而且是偶然发生。没有找出问题的关键所在,最后我使用了一个最 不好的办法,解决了这个问题,但是并未从根本上解决该问题。先用信号捕获程序崩溃的前一刻,在这一刻在程序内调用linux外部函数reboot让程序重新运行启动。最初我的想法是直接重新运行程序,但是报错的问题是程序运行内存不足,并不足以支持程运行。后来我发现reboot却可以有效的解决这个问题。下面是代码void SigExit(int sig){ prin

2020-11-11 15:13:39 143

原创 Dijkstra 迪杰斯特拉算法(最短路径)

做了一个最简单的Dijkstra 的代码,时间复杂度为n方先存储点使用二维数组来存储需要用一个一维数组 dis 来存储 1 号顶点到其余各个顶点的初始路程既然是求 1 号顶点到其余各个顶点的最短路程,那就先找一个离 1 号顶点最近的顶点。通过数组 dis 可知当前离 1 号顶点最近是 2 号顶点。当选择了 2 号顶点后,dis[2]的值就已经从“估计值”变为了“确定值”,即 1 号顶点到 2 号顶点的最短路程就是当前 dis[2]值。为什么呢?你想啊,目前离 1 号顶点最近的是 2

2020-09-09 15:11:18 967

原创 C++计算2020的阶乘(C++超大数阶乘)

不使用任何整型变量,因为2020 的阶乘很大使用string比较好,每次计算一位转成数字,乘以i,i表示的阶乘的因数进位后再转成字符串#include <bits/stdc++.h>using namespace std;int main(){ while(1) { string ans = "1"; int cnt; cout<<"要计算几的阶乘?"<<endl; cin>>cnt; for(int i = 1;i&

2020-09-08 16:45:25 2140

原创 C语言优先队列(priority queue)详解

0x00,优先队列(priority queue)priority queue是一个用"堆"实现的,类似set的容器,有着queue的基本功能。特征是"具有优先级,可以按照优先级出队"可能不是特别好理解,其实就是一个排序啦。。。举个栗子:3入队,4入队,1入队,如果是queue的容器,出队顺序为3,4,1,而priority queue则在内部会排好序,出队顺序为4,3,1。这种数据结构在解决一些高级问题,例如贪心类问题,或者迪杰斯特拉算法,都可以更加方便的解决问题。0x01,...

2020-09-08 16:37:40 7960 5

原创 线程优先级实现原理

线程的优先级并不是你想象的先执行哪个后执行哪个而是所有的线程不论优先级高低都会执行,优先级越高表示CPU分配给该线程的时间片越多,执行时间就多优先级越低表示CPU分配给该线程的时间片越少,执行时间就少...

2020-08-14 10:18:31 376

原创 总结一个小错误deprecated conversion from string constant to “char *“报错问题

char* MessageArray02[]={"刹车片过热智能驾驶无法激活", "Brake pads overheated\niDrive impossibly activated"};用最新的g++编译一下就会得到标题中的警告,无论使用gcc 或者g++命令, 都会报出下面的错误, 不能通过编译:为什么呢?原来char *背后的含义是:给我个字符串,我要修改它。而理论上,我们传给函数的字面常量是没法被修改的。所以说,比较和理的办法是把参数类型修改为const c...

2020-08-05 15:04:21 5980

原创 特殊的多线程

还是因为项目的原因,我一直在想怎么解决之前遇到的问题,程序顺序执行却要求在中间延时执行某个函数,我不想用信号,最后咨询了朋友,他告诉我用多线程。我想了想, 我已经用了回调了,似乎也用不了回调了。就尝试下多线程吧。下面是我自己总结的一个线程使用方法,线程可以无限次数的开启,因为是设置成了程序运行完成,或者意外发生,均会自动销毁线程。也许不是太安全,但是好用。这里我放上一个函数的代码。int touch_piano(){ int x , y , cont = 0 ; int fd_ts

2020-07-31 17:15:49 142

原创 linux下防止多重定义

以前没有做过工程项目,如今遇到了很多问题,我希望把自己遇到的问题记录下来,就比如最近遇到的重定义问题,因为是自己写makefile的缘故,我在.H文件中定义了变量,检查了代码逻辑没有问题,但是在编译过程中却频频的报错,定义变量重定义。解决的办法。一,将你要定义的变量写到一个.h文件中,让所有的文件都调用它。二,在变量前加上static,定义为静态变量。最开始不明所以,只得把变量写到.C文件中,但是后来调用又必须在.h文件中找。无赖只得在.h文件中添加我只添加了一个我想要的变量。

2020-07-30 09:50:30 602

原创 嵌入式开发,linux下的异步回调函数,即延迟回调函数

因为回调函数分为阻塞式回调和非阻塞式回调(延迟回调也叫异步回调),我记录的重点是异步回调,阻塞式回调,在很多博客上都可以找到也不难理解,但我个人认为用得最多的是异步回调,因为工作的原因,我发现异步回调是一个很不错的方法,可以解决很多问题。以前在老师讲课的时候也有讲到过这个东西,但是我都不是很在意,现在到了工作中这类的问题还不少,于是特意写了一个异步回调的方法。就拿我最近在工作中遇到的一个问题吧,有很多的can信号,他们有各自的时间片,就是到了某个时间点can信号就会更新一次,有可能是同时好几个can信号更新

2020-07-29 15:23:54 471

原创 linux消息队列的有趣的使用

在之前学习pyhton的时候老师提出了个一个问题,写一个购物车,要求你的金币数量在这一次购物后存在记录,就是说本来你的金币有1000,买了东西后剩800,下次打开程序再运行时,你的金币应该是800。也不知道读者明白没有我讲的,就是说程序运行第二次时候你的存储数值发送了改变并且得到了保存。老师说解决断电后程序重启,仍然可以读取到原来数据的办法有两种。一,存到文件中程序启动就读取文件判断是否有数据,没有就往里面存,有就读取,并且忽略原来定义的固定值。二,存储到数据库这个就不用多说了和存文件类似。可是

2020-07-14 12:55:44 113

原创 clion ‘uint8_t* touint8_t loses precision字节丢失

因为自己也是第一次搞这个东西,而且还是拿的别人工程师的代码看#define OFFSET(structure, member) ((uint8_t)&((structure*)0)->member)这一行代码是//获取结构体中变量的偏移量 (32位系统)但是我的ubuntu是64位的再转换过程中出现了字节丢失编译一直报错一开始我没有搞明白因为我的u8Language是 uint8_t类型,咋看是没有问题的。解决办法既然报错问题是高字节像低字节转换出现了问题

2020-07-09 17:44:52 251

原创 cygwin 安装过程中报错unable to get setup 镜像源

安装步骤我就不讲了从官网(https://cygwin.com/install.html)下载Cygwin离线包,根据自己系统要求进行选择是64为还是32位。到这一步我出现了错误【解决过程】1.去http://mirrors.163.com/cygwin/看了看,结果发现,其中,已经变了,其包含了对应的x86和x86_64两个文件夹了:所以,肯定是找不到对应的setup.ini文件了。因此你要根据自己下载的软件来选择,也就是你在填入url的时候注意路径一定是.

2020-07-07 18:13:00 2143

转载 liunx下串口通信

Linux下编程的过程有些固定,很多都是比如打开、配置、关闭等等串口通信流程:打开串口ttySn--->初始化串口--->读写(read、write)--->关闭串口串口设置最基本的设置串口包括波特率设置,效验位和停止位设置。串口的设置主要是设置 struct termios 结构体的各成员值。struct termio{ unsigned short c_iflag; /* 输入模式标志 */ unsigned short c

2020-07-02 16:00:46 156

原创 python+django2.0+xadmin2.0配置

我这里没有提供xadmin。只是写了xadmin的安装过程,先要下载xadmin的源码到本地,一定要是xadmin2.0或以上的,django也是2.0或者以上,两者相配。下载下来的xadmin大概是这个样子。可以只取这部分,到你的项目中,新建一个extra_apps的文件夹把它放到下面,然后先运行,不慌迁移数据,报一个错就解决一个,到最后再迁移数据。这是第一次运行时报的错安装...

2019-05-28 18:21:27 1027 1

原创 模拟实现一个ATM + 购物商城程序

先说最重要的地方,怕忘记在把各个模块做完后记得在最外面的文件夹下,鼠标点击右键找到以下图片上的东西点击,不然程序不能运行 day6 #ATM主程目录   ├── __init__.py├──  acc_operation #用户选择命令操作   │   ├── __init__.py   │   ├── main_interface.py  #主要的操作执行程序    ...

2018-11-17 19:18:39 539

原创 员工信息增删改查程序

import pandas as pdimport codecsimport csvdef load_staff_date(): dates=[ [1,'Alex Li',22,'&lt;13651054608&gt;','IT','2013‐04‐01'], [2,'Jack Wang',28,'&lt;13451024608&gt...

2018-11-14 19:21:06 881 1

原创 购物车

import os, sysimport pandas as pdimport csvimport getpassgoods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price&quot

2018-10-23 21:05:44 142

原创 用户登录系统

import os, sysimport pandas as pdimport csvimport getpass# 先建一个空的csv文件用来存用户数据,同时以追加的形式打开。f = open('UerInforMation.csv', 'a')f.close()print('*' * 50)# 存放已经登录的用户user_list = []# 设置任意的循环数i = ...

2018-10-23 21:04:47 2273

原创 用python实现杨辉三角和倒杨辉三角

因为我只有c的基础所以很多东西是生办过来的,方法可能有些笨,请谅解。不说了直接附上代码import numpy as np#整形输入n=int(input())#根据输入大小来创建矩阵x,y=n,2*n+1#生成全零的numpy矩阵a=np.zeros([x,y],dtype=int)#根据规律填数for i in range (n): k=n-i fo...

2018-10-07 19:39:56 2570

原创 tensorflow 验证码识别

搞学习深度学习,我第一个做的小项目就是这个 ,验证码识别,前前后后花了一个多月的时间,还是很菜,下面是我的成果,大部分代码是自己写的,部分借鉴了别人的。然后分享一点我的经验,训练的时候要有耐心,只要损失值在变小,或者在波动(但准确率却没多大变化),就说明大致的方向没有错,坚持等下去,我这个是在训练到3000多次的时候,损失值发生了突变,走上正轨了。训练代码:import numpy as...

2018-08-22 13:48:27 255

原创 jupyter notebook 改变起始目录

我是这样的,首先在Windows中的程序,找到并打开Anaconda Prompt 输入命令jupyter notebook --generate-config然后打开Anaconda 所在的文件目录(通常在C盘),找到.jupyter文件打开jupyter_notebook_config.py文件(我用的记事本打开的),找到下面这个地方,删除c.NotebookApp.n...

2018-08-17 17:46:49 272

原创 Anaconda下“The kernel has died, and the automatic restart has failed.” 的问题

方法一:在你的在anaconda Prompt 中分别输入一下两句:conda upgrade notebookconda upgrade jupyter如果你改变过jupyter的起始路径(就是打开JupyterNotbook的位置)那么方法一可能行不通可以用方法二方法二:打开你的AnacondaNavigator 在你想要更新的的那个python环境下点击更新 ...

2018-07-27 15:53:54 7087 1

原创 pycharm2018破解方法

第一.首先必须是JetBrains PyCharm 2018.1.4 x64,然后转到这个网址`https://pan.baidu.com/s/1qjI9uHaw0x374rwu6H8djA`,下载最新的破解补丁JetbrainsCrack-2.8-release-enc.jar 。第二.把刚才下载的(JetbrainsCrack-2.8-release-enc.jar )(以下就简称2.8)放到...

2018-07-05 13:09:06 1071 1

空空如也

空空如也

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

TA关注的人

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