zhangsz_sh
学以致用
展开
-
Linux 下手动释放内存 drop_caches
Linux 下手动释放内存 drop_caches原创 2023-10-30 19:57:18 · 685 阅读 · 0 评论 -
AS608 指纹模块驱动代码
指纹模块:AS608 驱动代码,可以应用在实际的项目开发中原创 2022-03-25 20:31:59 · 1845 阅读 · 0 评论 -
GPIO引脚模拟实现软件I2C驱动
GPIO 软件I2C 的实现原创 2022-03-25 21:25:23 · 1687 阅读 · 0 评论 -
移植RT-Thread 自动初始化机制到STM32裸机程序
移植RT-Thread 自动初始化机制到STM32裸机程序原创 2023-04-07 22:24:17 · 534 阅读 · 0 评论 -
RT-Thread ART-Pi bootloader 改为裸机实现
RT-Thread ART-Pi bootloader 改为裸机实现原创 2022-05-10 08:12:21 · 1144 阅读 · 5 评论 -
STM32 GPIO 引脚中断号重复问题的分析
STM32 GPIO 引脚中断号重复问题的分析原创 2022-05-08 17:17:53 · 2365 阅读 · 0 评论 -
RT-Thread 应用笔记:记录一次初始化死机的排查过程
RT-Thread 应用笔记:记录一次初始化死机的排查过程原创 2022-04-26 19:40:56 · 1016 阅读 · 0 评论 -
提高嵌入式软件开发的效率
提高嵌入软件开发的效率的方法汇总原创 2022-04-15 10:10:24 · 903 阅读 · 0 评论 -
嵌入式系统架构设计师的理解
嵌入式系统架构的解读:架构设计师是什么样的?原创 2022-04-13 23:09:11 · 4157 阅读 · 0 评论 -
Keil MDK设置部分程序在RAM执行的方法:ramfunc
Keil MDK5 设置让程序(函数)执行在RAM中原创 2022-03-27 10:41:38 · 2686 阅读 · 0 评论 -
彻底搞清楚STM32CubeMX生成工程再次下载后SWD无法使用问题
背景STM32CubeMX生成工程,调试USB-HID,第一次调试,没有问题,更改代码下载,提示找不到芯片。问题发现工程里,SWD被禁用了。由于板子复位键不好用,所以,使用镊子,一直按着复位(按下复位键),点击下载,再松开镊子(复位键弹起)。可以再次烧写程序。原因原来默认配置:【System Core】- 【SYS】 - 【Debug】,配置的【No Debug】引起的,这样因为无Debug口,会禁用SWD与JTAG接口。这个配置比较的隐藏,一直没找到。如...原创 2020-12-23 09:03:50 · 4589 阅读 · 2 评论 -
在Win7 64位上使用Python进行TCP通信_Server端
使用Python进行TCP通信测试,是相当的简单,根据网上的例程,整理了一下,发现测试正常。win7 64下安装 python 3.5.4,然后配合野人网络调试助手 V4.2,实现了服务器 Server端的简单通信。import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(('192.16原创 2017-08-27 19:17:56 · 787 阅读 · 0 评论 -
ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘ 解决方法
问题环境:ubuntu 20.04 + mysql serverubuntu gerrit@pluto-os:/$ mysql -u root -p,输入密码后,无法进入数据库更新mysql 数据库的 root 密码,使用root登录,一直提示登录失败ERROR 1698 (28000): Access denied for user 'root'@'localhost'解决思路这里提示没有权限? 我在命令前增加了:sudo,发现能正常登录了gerrit@pluto-os:/$ mys原创 2021-12-26 00:49:31 · 720 阅读 · 0 评论 -
2022~2023 年需要熟悉或掌握的技术点汇总
现有 hardware service 硬件管理框架(LCD、TP、KEY、时钟realtime、电机vibrate等) sensor service 传感器框架(增加算法注册) telephony + RIL GSM框架(电话、短信、GSM服务、Modem、RIL接口等框架) Power Manage PM框架(优化) PM_LOG框架(基于文件系统,独立于ulog?) Vsensor 虚拟传感器框架(vsensor)新组件 多机通讯框架(基于rt_mq,类似于ict) rt_mo原创 2022-01-15 19:54:27 · 301 阅读 · 0 评论 -
Nodepad++ 代码显示空白符TAB与空格的设置方法
问题:如今代码为了规范格式,一般吧TAB键转换为空格键。使用Notepad++,打开代码文件,发现默认无法显示空白符(TAB,空格,回车换行等)。可以简单设置,显示空白符。设置方法【视图】 --- 【显示符号】 -- 选择:显示空格与制表符。这里的制表符,就是TAB按键。显示效果发现空格,会用【点】显示。若有制表符,也可以显示。目的适用于代码格式的整理。...原创 2021-02-10 10:16:26 · 10449 阅读 · 1 评论 -
SIM800L 模块 使用AT命令打电话
背景最近在研究GSM业务,用之前买的SIM800L 模块,插入SIM卡,验证下电话业务。使用AT命令大电话,其实很简单。准备工作这里手焊一块调试用。电源模块+SIM800L模块+USB口,焊接在一块洞洞板上。SIM800L是一个GSM模块,需要把SIM卡(非物联网卡),正确插入SIM卡槽。 注意供电电压:电池供电范围,如3.5~4.4V。 3.3V电压有点低。 注意供电电流:GSM 瞬间电流超过1A,因此,小电流的LDO,可能会让模块无法正常工作。 ...原创 2021-01-12 21:50:26 · 6889 阅读 · 9 评论 -
在Win7 64位上使用Python进行串口通信
Python非常适合写一些测试的脚本,如快速的串口通信测试等。如果使用VC++ QT开发,可能用时较多,使用python,如果掌握使用方法,可以直接读写测试,配合设备或是串口助手,很快验证与实现。 Python有没有现成的串口API直接调用呢?经过实践验证,需要安装一个叫 Pyserial的组件即可。这个可以在github上下载。下载地址为:https://githu原创 2017-08-27 11:55:05 · 18593 阅读 · 1 评论 -
Win10+VS2019+opencv-4.1.0 学习一:显示一张图片
开发环境:操作系统:Win10 64bit编译器:VS2019OpenCV:opencv-4.1.0(目前比较新的)(1)首先安装VS2019,可以选择社区版本,也可以选择企业版,企业版本需要网上找下密钥。(2)下载 opencv-4.1.0,这里直接下载已经为VS2017或是VS2019准备好的编译后的库,不是源代码,源代码需要cmake配置后编译,比较花时间。 opencv...原创 2019-06-01 23:13:41 · 3626 阅读 · 1 评论 -
Win10+PyCharm+Python3.7+Opencv调试环境的搭建
操作系统:Win10 64位PyCharm:这里是社区版本,JetBrains PyCharm Community Edition 2019.1.2 x64Python:Python 3.7.3Opencv:opencv-python 4.1.0.25(1)打开PyCharm后,设置python解释器的路径,opencv是不支持的。(2)打开cmd.exe(管理员权...原创 2019-06-02 11:23:38 · 2846 阅读 · 3 评论 -
Allegro PCB 设计技巧:PCB走线拐弯处锯齿显示与平滑显示
在用Cadence 的PCB设计软件时,总是想着与之前用的Altium Designer 画PCB的样子统一起来。发现用Allegro PCB打开一个已经画完的PCB文件后,发现PCB走线拐弯处有断裂的锯齿状,很难看,让人搞不清楚是不是连接有问题还是电脑显卡问题(我的电脑显示还可以吧)。 查资料与搜索一下,原理是Allegro PCB软件可以设置与修改显示的样子。修改方式如下:原创 2014-05-30 11:59:36 · 13720 阅读 · 0 评论 -
VC6.0下64位整数的操作
今天写了一个关于大整数乘法的程序,结果并不让人满意,也就是result=0x305*0x499602D2result等于多少的问题。 我把结果result定义为:DWORD类型,结果溢出了。看了一个DWORD,原来是32位,4个字节。因此会溢出,那VC6.0不支持8字节长度的数据格式吗?如long long之类的?改成double,同样不行。。原创 2015-07-22 15:32:06 · 3901 阅读 · 0 评论 -
VC++使用内联汇编的例子:冒泡法排序(从大到小排序)
如果明白了冒泡排序的原理,从大到小或是从小到大,其实实现是相似的道理,如果每次排序都把最小的放在最后面,这样的话,循环下来,就是从大到小了,这里采用VC++内联汇编的方式实现,因为想学习一下内联汇编这种方法。/* 使用内联汇编,从小到大排序。 */#include using namespace std;#define MAX_SIZE 20int array[MAX_SIZE原创 2015-11-11 12:30:21 · 2220 阅读 · 0 评论 -
VC6.0对话框加背景图片的方法
用VC6.0开发的程序,默认背景没有图片,不好看,如何加入图片呢?加入位图图片(bmp)文件的方法如下:一、首先制作或是找到一个大小跟对话框差不多,像素:24bit及以内的都可以的位图文件:xx.bmp,放在VC6.0工程目录中。二、在VC6.0上插入位图文件:菜单Insert->Resource... 打开插入资源的对话框,选择Bitmap(位图),然后点击impo原创 2015-02-05 16:06:30 · 10990 阅读 · 10 评论 -
C#实现字符串RSA加密与解密算法
利用C#的加密库,实现RSA加密算法还是很容易的,因为我只是初步了解这个加密算法,据说是目前非对称加密中比较优秀的加密算法了,如银行什么的都在在RSA1024 RSA2048 RSA4096之类,后面的数字,我想,越大,越复杂,破解也越困难吧。。 RSA加密也很复杂,把几位数加密后,变成了很大的字符串(一般为十六进制字符串),当然也可以使用BASE64处理一下,因为加密后的数值,原创 2016-01-14 21:15:32 · 7160 阅读 · 0 评论 -
VS2019 C# 连接IBM DB2数据库并查询数据表
操作系统:win10 64位C#:VS2019数据库:IBM DB2v11.1_win64_expc其他工具:IBM Data Studio ibm_ds4130_win步骤一:使用命令行或是IBM DB2工具:Data Studio,创建一个数据库。这里名称为:StudentCREATE DATABASE "Student" AUTOMATIC STORAGE YES ...原创 2019-06-16 08:31:01 · 3494 阅读 · 0 评论 -
C# 获取Windows系统的串口列表并加入ComboBox控件
功能描述C# 获取当前系统(Windows)的串口列表C# ComboBox 载入串口列表方法引用:using System.IO.Ports;,使用C# 的 SerialPort在窗体增加 ComboBox 控件,双击窗体,进入窗体的load 事件 private void Frm_Main_Load(object sender, EventArgs e) { cmboxSerialPort.Items.Clear();原创 2022-02-13 22:46:04 · 1745 阅读 · 0 评论 -
loop与loopw与loopd
今天遇到了汇编指令:loopd,循环中使用,计数器为:ECX,并且ECX自动减一,如果减至0退出循环。下面是搜集整理的相关资料,记下来。LOOP: 在实地址模式下使用CX寄存器而不是ECX寄存器。LOOPW:在任何模式下都会使用CX寄存器作为计数器。LOOPD:在任何模式下都会使用ECX寄存器作为计数器。 循环控制指令LOOP 格式: L原创 2015-08-18 22:15:54 · 2745 阅读 · 0 评论 -
VC++使用内联汇编的例子:冒泡法排序(从小到大)
最近看了VC++使用内联汇编的文章,感觉不错,因此,修改而成,实现冒泡法排序之从小到大排序。/* 使用内联汇编,从小到大排序。 */#include using namespace std;#define MAX_SIZE 20int array[MAX_SIZE]={86,73,12,66,88,98,102,33,36,23,106,25,32,26,98,97,42,53原创 2015-11-11 12:24:53 · 1208 阅读 · 0 评论 -
VS2013 C++ Unicode环境下 BYTE 数组转CString的方法
用VC6.0编译成功的,在VS2013 Unicode环境下不成功。主要的问题是BYTE数组转CString的问题。网上搜了一下,也还不明白怎样转换,忽然自己试了一下,找到了一个最简单的方法。Unicode环境下:CString 应该是wchar_t类型的。我定义的是BYTE类型(无符号单字节)。直接使用如下的方法,一句代码搞定!CString str = CString(s)原创 2015-12-25 15:05:14 · 4859 阅读 · 0 评论 -
四舍六入五成双的浮点转整型的宏定义
原来浮点转整型,如果用C或是C++强制转换的话,小数部分就全部都舍去了。如:float temp=2.55;(int)temp=2如果想四舍五入呢?注意,这里的四舍五入不是传统的四舍五入,因为四舍五入的误差很大,正确的方法为:四舍六入五成双,如果小数为:5,则根据前面一位整数位是奇(+1)或是偶(不进位)来操作。下面为我用到的浮点转整型的宏定义。inum为转换后的整型。原创 2015-08-08 13:29:59 · 2376 阅读 · 0 评论 -
字符串String MD5计算小工具 VC++篇 VS2008工程
基于字符串加密的MD5算法,VS2008 VC++,多字节编译工程。主要代码如下,实现了ANSI字符串加密与Unicode字符串加密。void CEncryptByMd5Dlg::OnButtonOk() { // TODO: Add your control notification handler code here UpdateData(true); unsigned i原创 2015-12-30 20:15:02 · 1633 阅读 · 0 评论 -
DllImport调用系统DLL的方法
[DllImport("user32.dll", EntryPoint = "GetDoubleClickTime")] public extern static int GetDoubleClickTime(); [DllImport("user32.dll", EntryPoint = "GetCaretBlinkTime")] public原创 2015-08-29 20:14:13 · 2691 阅读 · 0 评论 -
C#实现字符串SHA-512加密算法
因为C#已经有了加密库:using System.Security.Cryptography;因此实现起来非常的简单,代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System原创 2016-01-10 00:17:14 · 5197 阅读 · 0 评论 -
VC++ 通过域名与服务器通信
Windows通信一般是通过Socket建立TCP通信的,需要固定的IP与端口号。但是,实际上,如果服务器不是公网的,那么IP会经常变化,这可能是因为IPV4数量少的原因吧。如果想做TCP测试,在内网建一个主机,外网如何访问内网呢?我们一般使用域名,动态域名解析来完成这个工作。 一般使用花生壳等动态域名解析,把内网的IP与端口号如:192.168.9.106 8080 映射为:f原创 2016-01-14 20:51:33 · 2387 阅读 · 0 评论 -
解决win7 64位上VC6.0 操作Mysql(32位)中文乱码的方法
主要的代码,加入如下的mysql_options,这样可以正常的显示中文,无论是cmd上显示还是软件输出显示还是Navicat 上显示。: mysql_init (&mysql); mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"); //这里设置为:utf8也不太好用。 if原创 2015-02-03 14:17:36 · 1548 阅读 · 0 评论 -
十六进制字符串转十六进制数值的方法
void CStr2HEX_V1Dlg::OnOK() { // TODO: Add extra validation here UpdateData(true); int i,len; __int64 temp2=0; if(m_szASCII.IsEmpty()) { MessageBox("请输入需要转换的十六进制字符串!",原创 2015-12-17 21:06:41 · 1395 阅读 · 0 评论 -
VC6.0 ADO方式连接远程计算机的SQL Server 2000数据库的方法
最近学习VC6.0操作SQL Server数据库,本地连接,很简单,直接使用数据源更方便,如果数据库不在本机,在虚拟机或是远程计算机上如何连接呢?下面是连接方式:经过测试成功。 AfxEnableControlContainer(); // Init Login Count m_iLoginCount = 0; // Create ADO Connection if( FA原创 2015-09-03 17:40:45 · 2699 阅读 · 0 评论 -
UPX 0.89.6 - 1.02 / 1.05 - 2.90 (Delphi) stub -> Markus & Laszlo 手动脱壳
UPX 0.89.6 - 1.02 / 1.05 - 2.90 (Delphi) stub -> Markus & Laszlo这个壳很容易脱壳。当然,手动只是查找到脱壳的位置,然后用OD的插件即可脱壳了。下面举个CrackMes的实例,看下如何脱这个壳,使用的依旧是ESP定律的方法找OEP,程序入口点。(1)OD载入程序,会提示压缩或是加密或是嵌入程序等提示,问你要不要分析:这里原创 2015-08-22 10:24:23 · 10288 阅读 · 2 评论 -
C# HEX字符串转HEX值的方法
比如想把字符串:"4A"转换成0x4A十六进制数值,用C# 的int.Parse方法即可。如下int num = int.Parse("4A", System.Globalization.NumberStyles.HexNumber); 当然,根据需要更改后面的参数,可以实现不同的类型的字符串转换。原创 2016-01-02 13:01:00 · 9260 阅读 · 0 评论 -
VC6.0文本输入框控件在运行时得到输入焦点的方法
关键代码:(CEdit*)GetDlgItem( IDC_NAME)->SetFocus(); 强制为CEdit类指针,即可使用SetFocus()成员函数,在运行时就可以得到输入焦点了。例子:简单的登录对话框点击登录控钮时的代码:void CLogin::OnOK() { // TODO: Add extra validation here原创 2015-02-04 16:00:58 · 2863 阅读 · 0 评论