自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 第一次写python的小程序

由于找不到pyinstaller命令,所以执行下面的命令来使用pyinstaller。安装pyinstaller:pip install pyinstaller。生成exe:python __main__.py -F test.py。功能:遍历目录下的所有txt文件将*和-之间的时间戳转换为rtc时间。pip show pyinstaller,来查找安装目录。cd 进入到查找到的目录的PyInstaller目录。

2023-11-01 11:06:24 177

原创 GDB调试

info 显示信息,info locals显示局部变量 info args显示参数 info break显示断点信息。p 打印 p a打印变量a的值 p/x a十六进制显示变量a的值。save breakpoints filename 保存断点信息。disable n 进制断点n。delete n 删除断点n。enable n 使能断点n。b 文件名:函数名/行号。

2023-08-17 09:23:18 75

原创 打印内存信息

【代码】打印内存信息。

2023-05-11 14:18:59 228

原创 Harmony在Linux下编译以及如何提高编译速度

环境配置以及如何编译,可以参照鸿蒙的官网:文档中心下面主要谈谈如何提高编译速度:gradle assembleDebug --parallel -p 工程根路径--parallel这个参数只对多module工程起作用,所以尽可能的将工程模块化,如果是多个工程,不能模块化,就可以多个工程一起编译,然后新建一个Build的工程专门用于编译,修改Build根目录下的settings.gradle文件,添加:include ‘:xxxxx’ project(':xxxxx').projectDir =.

2022-03-11 10:32:13 276

原创 Ubuntu下QT程序的发布

由于QT程序需要在没有QT环境的PC上运行,所以需要准备程序的发布包,包含需要的bin文件、库文件、插件、配置文件以及要发布的程序,如下图所示。准备程序的桌面启动器文件和桌面图标,准备好的文件如下图所示。桌面图标就是一个PNG图片,作为显示在ubuntu的应用列表中的图标。桌面启动器文件(APMonitor.desktop)是重点,文件内容如下所示:[Desktop Entry]Name = APMonitorcomment = APMonitorEx...

2021-08-27 09:08:55 1209

原创 Linux下QT程序的发布及相关问题

最近,公司要求开发一个Linux上的有画面的程序,记得上学时,开发过嵌入式QT的程序,这是我对QT程序唯一的一点儿经验。这次开发我还是选择了QT。开发环境如下:PC系统版本:ubuntu14.04 QTCreator:5.8.0之前做过几个windows上 程序,使用的时VS、MFC之类的,商用的集成开发环境一切都是那么方便,由于是首次正式开发Linux上的界面程序,在发布的时候遇到了一些问题,现记录下来。Linux QT程序要想在没有QT环境的目标机运行,可以采用静态编译,也可以采用动态编译,

2020-10-30 09:46:21 461

原创 将Android10编译成真正的具有root权限的系统

修改su命令的源码位置:system/extras/su/su.cpp注释main函数的开始两行: //uid_t current_uid = getuid(); //if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "not allowed");为其他用户添加su命令的可执行权限位置:system/core/libcutils/fs_config.cpp文件中搜索修改

2020-07-01 16:20:37 2657 1

原创 SD卡和文件系统那些事儿

最近在研究STM32F4的SD卡Fatfs文件系统,官方和开发板提供的例程完全可以使用,但是缺少了理论的支持,完全看不懂。所以在网上以及《零死角玩转STM32》上整理了一些SD卡相关的基础知识。SD卡的分类目前常用的存储卡按照尺寸可分为SD卡和micro SD卡(TF卡)(其实种类繁多,我只接触过这两种),按照容量可分为标准容量SD(不大于2GB)、高容量SDHC(大于2GB,不大于32GB)和超大容量SDXC(大于32GB,不大于2TB),还可以按照传输速度进行划分,SD2.0规范...

2020-06-03 10:22:24 5606 2

转载 Win10启动wifi共享源码(C#)

下面的代码是从网上下载的,具体从哪里下载的已经找不到链接了。源文件:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using Windows.Devices...

2019-07-04 10:20:04 2389 6

转载 Win7启动承载网络的方式(代码)

下面的代码是从网上下载的,具体从哪里下载的已经找不到链接了。源文件:// WIFIMAIN.cpp : 实现文件////#include "stdafx.h"#include "pch.h"#include "WifiShareTool.h"#include "WIFIMAIN.h"// WIFIMAINIMPLEMENT_DYNAMIC(WIFIMAIN, CWn...

2019-07-04 10:16:44 546

原创 win7和win10对于wifi共享的不同

Win7:是以承载网络的方式来实现共享(hostednetwork) 设置:netsh wlan set hostednetwork mode=allow ssid=mywifi key=12345678 启动:netsh wlan start hostedwork 停止:netsh wlan stop hostedwork...

2019-07-04 10:12:22 600

原创 判断程序是否以管理员身份运行

BOOL IsAdministrator(void){ BOOL bIsElevated = FALSE; HANDLE hToken = NULL; if (!IsWindows7OrGreater()) { return FALSE; } if (OpenProcessToken(GetCurrentProcess(), TOK...

2019-07-04 09:59:46 997

原创 windows防止程序重复启动

MFC(C++):在OnInitDialog()函数中。 CString strClassName = L"AJISWifiShareTool"; HANDLE m_hMutex = NULL; m_hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, strClassName); if (m_hMutex == NULL) { m_h...

2019-07-04 09:55:23 807

原创 简单的DHCP

使用win7的承载网络开启共享wifi,ICS分配IP地址比较慢,自己重新写了一个简单的DHCP协议,IP地址可以从2分配到254.可以用winshark来抓包,分析DHCP协议。mydhcp.cpp#include "pch.h"#include "mydhcp.h"#include <winsock2.h>#include <iphlpapi.h>#i...

2019-07-04 09:50:27 312

原创 Windows处理系统睡眠唤醒消息

MFC(C++):LRESULT CWifiShareToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM IParam){ if ((message == WM_POWERBROADCAST) && (wParam == PBT_APMRESUMEAUTOMATIC)) { } return CDialo...

2019-07-04 09:37:19 1468

原创 linux动态库及动态库的版本管理

Linux下动态库有三个名字:real name、so name、link name。real name:共享库本身的名字,命名格式为libname.so.x.y.z,lib是前缀,name是共享库的名字,so是后缀,x是主版本,y是次版本号,z是发布版本号。 主版本号、次版本号和发布版本号的意义如下: 主版本号:表示库的重大升级,比如改变了原有的接口。不...

2019-03-14 12:31:09 2062

原创 Android系统中添加声音文件和jar包等

1、添加jar包(1)system/core/rootdir/init.environ.rc.inexport BOOTCLASSPATH %BOOTCLASSPATH%:/system/framework/xxx.jar: /system/framework/xxx.jar(2)vendor/xx/libs/xxx在新建的目录中,添加xxx.jar、xxx.jar和xxx.mk文件。文件内容如下...

2018-06-20 15:06:04 837

转载 SD卡应用总结(FatFs)

SD卡应用总结(FatFs)此文转载地址为:http://bbs.eeworld.com.cn/thread-377465-1-1.html对于SD卡的应用,想必大家都尝试多。不过,很多网友恐怕只停留在实验的基础上吧。对于SD卡在文件系统下或者不带文件系统下,对SD卡的操作都是很简单的。是的,只是简单的文件读写确实不难。但是,如果每秒钟不停的写数据,而且是不停的工作,恐怕SD卡的应用就没有

2016-03-17 13:47:42 1894

原创 CString与char的相互转换

CString CharToCString(char *pText){int    iLength  = 0; wchar_t *pwText = NULL;CString csText  = _T("");/* Get the number of wide character array */iLength = MultiByteToWideChar(CP_ACP

2015-12-16 08:42:11 413

转载 用MFC实现串口编程

用MFC实现串口编程(作者:付杰本文详细介绍了串行通信的基本原理,以及在Windows NT、Win98环境下用MFC实现串口(COM)通信的方法:使用ActiveX控件或Win API.并给出用Visual C++6.0编写的相应MFC32位应用程序。关键词:串行通信、VC++6.0、ActiveX控件、Win API、MFC32位应用程序、事件驱

2015-09-22 13:51:07 656

原创 windows下写日志文件的代码

void CreateLogFile(){ ofstream file(LOG_FILE_PATH,ios::binary); file.close();}bool isLogFileExist(){ bool bRet = false; fstream file; file.open(LOG_FILE_PATH, ios::binary |ios::in); if(!fi

2015-09-22 09:16:43 1249

原创 windows启动进程

BOOL StartupFTPServer(){ BOOL ret = FALSE; SHELLEXECUTEINFO shell = { sizeof(shell) }; shell.fMask = SEE_MASK_FLAG_DDEWAIT; shell.lpVerb = _T("open"); shell.lpFile = _T("FTPServer

2015-09-22 09:13:40 582

原创 通过进程名称查找和杀死进程

void KillRelatedProcess(char* cProcess){ HANDLE hSnapshot; PROCESSENTRY32 pe; hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); Process32First(hSnapshot,&pe); do {

2015-09-22 09:11:41 500

原创 获取本地IP

获取本地IP地址,直接上代码:BOOL GetLocalPCIPAdrdr(CString& csIPAddr){ BOOL bRet = FALSE; char szHostName[128] = {0}; int iRet; WSADATA wsaData; struct hostent *pHost; int i; LPC

2015-09-22 09:07:41 353

原创 程序调用plink.exe发送命令设置路由

项目要求程序调用cmd.exe然后执行plink.exe登录到路由器,然后执行路由器的命令对其进行设置。本体和cmd.exe交换数据,发送命令到cmd.exe然后从其获取执行的结果进行判断。代码如下:初始化代码:BOOL CMotorolaSetDlg::OpenCMDProcess(){ SECURITY_ATTRIBUTES sa; STARTUPINFO si;

2015-09-22 09:01:56 1366

原创 windows系统下文件不能删除的原因

最近做的一个小项目,用MFC做了一个路由器设定的小工具。遇到了一个小问题,从路由器copy出它的配置文件到ftp服务器,获得路由的SSID等信息后,删除此配置文件,但就是删除不掉,怀疑有两个原因:用户权限和文件属性。开始时没怀疑文件的属性,一直以为是用户权限问题,结果还是删不掉。无意间发现文件是只读属性。下面是更改用户权限和删除文件的代码:BOOL CMotorolaSetDlg::Enabl

2015-09-22 08:51:53 692

原创 UpdateData和PreTranslateMessage函数

this->UpdateData(FALSE):的意义是更新控件关联变量的值到控件。this->UpdateData(TRUE):的意义是将控件的值更新到关联的变量。PreTranslateMessage返回TRUE:表示消息不交给系统处理。PreTranslateMessage返回FALSE:表示消息交给系统处理。

2015-09-02 09:06:19 326

原创 MFC自定义消息

MFC 自定义消息 线程 界面刷新

2015-09-01 09:47:22 332

原创 敏捷开发之道

1.做事。指责不会修复BUG。把矛头对准问题的解决办法,而不是人。这是真正有用处的正面效应。把重点放到解决问题上,而不是指责犯错者,或者去抱怨。“为了解决或缓解这个问题,我能够做什么?”、“你出现了什么问题,我能提供什么样的帮助?”。    2.欲速则不达。不要坠入快速的简单修复之中。要投入时间和精力保持代码的整洁、敞亮。如果时间紧迫,可以简单修复,但是简单修复之后要明其理,时间充裕时,要

2015-07-15 17:11:59 508

原创 CM3 STM32F的低功耗

Cortex M3低功耗的模式CM3提供了两种低功耗模式:sleep和deep sleep。在睡眠时,可以停止系统时钟(SYSCLK),但让FCLK继续走,以允许处理器能被SysTick异常唤醒。 寄存器位描述SCRSLEEPDEEP用于控制处理器使用sleep还是使用d

2015-07-15 17:10:36 1654

原创 仿真器对SWD的支持

仿真器对SWD的支持

2015-07-15 17:08:10 319

原创 ST芯片的引脚复用功能和重映射功能

重映射:将原来属于A引脚的默认的复用功能,转移到具有这个重映射功能的B引脚。当把GPIO用作EXTI外部中断或使用重映射功能的时候,必须开启AFIO时钟,使用默认复用功能的时候不用开启。

2015-07-15 17:05:14 1545

原创 使用Commander烧写RAM并运行方法

1、将kernel-ram.hex文件使用JFlash转换成bin文件;2、将转换好的kernel-ram.bin文件放置在D盘的根目录下;3、打开JLink-Commander,输入命令:loadbin d:\kernel-ram.bin 0x10000000(RAM起始地址);4、使用命令mem32 0x10000000,8查看RAM开始的数据,将前两个数据赋值给MSP和PC寄存器

2015-07-15 17:03:30 594

原创 一张图了解所有USB接口和线序

在OTG中,初始主机设备称为A设备,外设称为B设备。可用电缆的连接方式来决定初始角色。HNP(主机协商协议):当两个OTG设备使用电缆相连,检测到接地的ID引脚时,表示默认的是A设备(主机),而检测到ID引脚浮空的设备则认为是B设备(外设)。这两个角色不是一成不变的,可以通过HNP协议来转换角色。 SRP(对话请求协议):允许B设备请求A设备打开VBUS电源并启动一次对话。一次OT

2015-07-15 17:00:50 18610

原创 keil环境下载程序到RAM中运行

首先,修改链接脚本,将ROM区域的地址更改为RAM区域中的地址;其次,将option->debug->Initialization File中添加一个.ini文件,内容如下;FUNC void Setup (unsigned int region) {  region &= 0xFFFF0000;  SP = _RDWORD(region);                

2015-07-15 16:58:50 2206

原创 一个尚不完善的printf

#ifndef __PRINTF_UART_H__#define __PRINTF_UART_H__#define PSTR(x) xtypedef void* va_list;#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1))#define va_start(ap,v) ( ap = (va

2015-07-15 16:57:38 282

原创 数制转换函数

EXPORT UW ltostr(UW Val,B *pString,UB Base,UW Length){ B c, *pInit; UB i,j; UW Len,SwapLen; *pString='\0'; pInit=pString; if(Val==0) { *pString++='0'; *pStri

2015-07-15 16:55:16 599

原创 push-pull和open drain

push-pull(推挽):一般指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。它既可以输出高电平,也可以输出低电平,用于连接数字器件。open drain(开漏):开漏中的“漏”指的是MOSFET的漏极。开漏的引脚,如果不连接上拉电阻就只能输出低电平(例如51单片机的P0口,当我们使用时要加排阻,这样就可以输出高电平啦!)。因此开漏输出适合做电流型的驱

2015-07-15 15:10:10 1103

原创 Linux下基于tty架构的串口驱动分析(S3C2440)

在TTY驱动架构中有四个重要的结构体:termios、tty_driver、tty_operations和tty_struct。下面分别介绍:(1)    termios结构体struct termios{       tcflag_t        c_iflag;       tcflag_t        c_oflag;       tcflag_t       

2015-07-15 15:07:33 528

原创 可重入和不可重入的概念

TaskA调用函数Fun(),Fun()函数还没执行完,启动TaskB,TaskB也调用函数Fun(),函数Fun()内没有全局变量,或者是对硬件的操作等影响全局性的影响,就是可重入,否则就是不可重入。

2015-07-15 15:06:22 430

蓝牙应用开发指南-进程互联解决方案(中文版)

绝版蓝牙经典书籍,蓝牙基础知识详细讲解,适合初级者。

2015-07-08

空空如也

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

TA关注的人

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