欢迎来到老马的领地~ 这是“压风式散热底座”发明者的个人网站:) 本人QQ:80524554,用户群1:562279766

Keil开发中避免中文路径问题的映射目录批处理

[ 2025-04-02 15:55:09 | by 嗷嗷叫的老马 ]
Keil毕竟还是老外的,对中文路径的支持不是太理想.

比如下面的场景,[能正常编译但IDE里提示文件未找到]:

https://www.m5home.com/blog//uploadfiles/20250402155745_56382.png


还好这个例子里,编译正常的,也能打开这个H文件,只是显示个叉而已.

但...

PID参数手动调试/整定流程

[ 2024-12-27 23:45:39 | by 嗷嗷叫的老马 ]
最近接了个小项目,一个恒温搅拌锅,里面加水,有个磁转子在转,锅里的水要恒温.

为了省事,直接上了ARDUINO,几天就写完了代码lol.gif

http://www.m5home.com/blog//uploadfiles/20241227235204_71698.jpg


硬件方案很简单:

主MCU是STM32F103C8T6,温...

Arduino IDE 2.3.3在RamDisk下无法启动的问题解决方案

[ 2024-11-06 09:39:06 | by 嗷嗷叫的老马 ]
先说结论:

RamDisk是Primo Ramdisk Ultimate Edition,其虚拟硬盘的类型要设置为[SCSI 硬盘].

原先为了快,选的是[Direct-IO 硬盘],结果就不行,看来兼容性才是一切!!!smilie64.png

事情的起因是接了一个小案子,打算用ARDUINO做,因为功能非常简单,就一路测温,一...

学习SOEM(Simple Open EtherCAT Master Library)的阶段性总结

[ 2024-08-17 11:46:28 | by 嗷嗷叫的老马 ]
SOEM - Simple Open EtherCAT Master Library,一个开源的EtherCAT主站库.

以前只是使用基于EtherCAT的硬件来干活,这次也因为干活的因素,需要自己写主站,就买了个开发板,结果里面例程中是移植了它.

摸了一段时间了,大概性地总结一下这个库与从站的通讯流程吧,也许不...

使用GDI接口的DirectX2D绘图控件 - DXDrawPad

[ 2024-04-10 20:05:11 | by 嗷嗷叫的老马 ]
因为DX接口使用上不是太方便,也与GDI编程习惯相差太多,就做了个这样的控件,使用GDI来绘图,存到队列中,再由DX来绘制到窗口内.

先放地址:  https://github.com/m5home/DXDrawPad

使用上很简单,先调用AddDrawObject(...

VS2022之前版本usercontrol的坑---只能编译为32位

[ 2023-12-02 16:40:37 | by 嗷嗷叫的老马 ]
VS2022是第一个64位版本的IDE,没错,这都知道.

然后我也是转C#好几年了,做过的项目中没有使用过usercontrol,因此不知道这个坑.

于是在我目前这个项目中使用了用户自定义控件后,掉坑里了----非VS2022版本的IDE,不能在使用了usercontrol的情况下,编译为X64!{smilie80...

C#中SerialPort串口类设置ReadTimeout问题研究

[ 2022-11-21 13:48:06 | by 嗷嗷叫的老马 ]
这几天用SerialPort类做485通讯,发现超时设置有点不太对劲,给了个5ms给ReadTimeout后,调用Read就马上返回了,感觉这个ReadTimeout并不是"两个字节间隔",而是"总时长"了smilie4.png

然后用AccessPort一看,果然,COMMTIMEOUTS结构中ReadTotalTimeo...

C#串口编程中SerialPort的Close方法偶尔会挂起的解决方案

[ 2022-08-19 16:17:37 | by 嗷嗷叫的老马 ]
C#来做串口通讯项目,目前这还是第一个,以前都用VB6做的,自认为没啥问题,结果还真就出了问题了smilie55.pngsmilie55.png

具体来说,就是SerialPort对象的Close方法调用时,有时会挂在Close上.

并且程序中打开串口后,有通讯的情况下,不主动关闭串口,而是直接关闭主...
昨天同事去一个客户现场调整程序,是把原支持485通讯的真空计CX-PRN10更换为模拟量输出的PSG500,因为CX-PRN10漏气,导致设备的真空度总是上不去,10个都得换。

由于PSG500是模拟量输出,所以得加一个模拟量转485的采集器,老板买的采集器是国产4通道的,品牌没听过,&...
今天登录客户的一个服务器,说是挂了已重启,让看看是啥原因造成的,结果远程桌面死活登录不上去,服务器是2008,我是WIN7,点了连接后没任何提示,只把那个进度框一闪,显示完了什么"正在连接"那一套流程后,进度框直接消失,就像什么都没发生一样smilie47.png

神...

使用VSCODE编译GRBL_ESP32的流程(图文记录)

[ 2022-01-08 11:53:49 | by 嗷嗷叫的老马 ]
记录一下,免得下次忘了又要去查.

流程如下:

1,准备好VSCODE,以及相关插件(Chinese(简体中文语言包)、PlatformIO IDE 、C/C++ 、 GitLens)
    注意,如果装了PlatformIO IDE后,左边插件列表里应该会显示出蚂蚁图标.如果没有,那就可能是与别的插件或配置冲突了. ...

STC8H1K08单片机ADC中VREF脚的坑

[ 2021-11-29 15:05:21 | by 嗷嗷叫的老马 ]
smilie73.png折腾!头一次用这个8H系列,但是文档却又写得不清楚.

现在这个案子,我用的是STC8H1K08,20PIN的版本,其引用定义如下:

http://www.m5home.com/blog//uploadfiles/stc8h1k08_58787.png


9脚是VREF,其文档中也没说明这个脚的内部结构,我接了...

什么是指针--如何让不懂编程的人听明白?

[ 2021-10-17 17:24:40 | by 嗷嗷叫的老马 ]
刚和一个朋友聊天,聊到了编程,他就说,以前大学时学过C语言,学到指针那一块,就完全懵逼了smilie48.png

我就说了句"指针有那么难吗",收到一个白眼以及一句话:

你都十几二十年的老程序员了,当然觉得不难.

还说了一大堆什么"指针很危险&qu...

立创EDA专业版客户端(伪)

[ 2021-09-25 10:41:37 | by 嗷嗷叫的老马 ]
咳咳.

立创EDA用得顺手,但是专业版还没出官方客户端,在浏览器里用(地址: https://pro.lceda.cn/editor ),总觉得差点意思,虽然实际上是一样....smilie48.png

于是乎,我终于想起了我好像还是会点编程的嘛!

再于是乎,就...

STC单片机中逐次比较型ADC的相关基础要点记录

[ 2021-06-10 12:40:38 | by 嗷嗷叫的老马 ]
这段时间整一个案子,STM8系列涨价到飞起,各家的芯片都不好拿,没办法,折腾一圈最终选上了STC的芯片....

目前也就只有他们家好拿货了smilie62.png

选的是STC15W408AS这款,带8通道的10位AD,足够我用.但问题在于那文档真是头大smilie55.png

我看了一上午,查了不...

C#中图片框实现类似VB6中AutoRedraw持久图像显示的办法

[ 2020-10-09 17:58:41 | by 嗷嗷叫的老马 ]
在C#里用图片框绘图想要持久化,不像VB6里那么方便,因为没有提供AutoRedraw了。

常规办法绘好后,一遮挡就成这样了:

http://www.m5home.com/blog//uploadfiles/edd21d12qwedy54_87865.jpg


那要么就自己管理重绘,这是最好的性能方案,但代码很多。...

关于Win7"打开或关闭Windows功能"空白问题的解决

[ 2016-12-17 11:08:21 | by 嗷嗷叫的老马 ]
这问题不知道啥时候出现的.....因为最近一个项目要测试一个网络服务器端,懒得自己写客户端,就顺手开命令行准备用telnet去连.结果.....说找不到这个程序.shocked.gif

一查才知道WIN7默认不装,那好说嘛,去控制面板里装上就是,于是进入程序与功能,点击"打开或关闭...

Ubuntu16.04中启用root用户,以及root用户自动登录

[ 2016-12-05 10:53:31 | by 嗷嗷叫的老马 ]
最近赶项目,老板让在N32905上面跑LINUX,再做个GUI.

这个比较麻烦,项目只有30天时间,但我又完全没玩过LINUX,汗一个.

按新唐官方文档,使用Ubuntu Linux去装它的交叉编译器以及N32905的BSP,中间有折腾,但总算顺利搞定系统编译.

其中系统的root登录我觉得比较重要,...

C#写COM封装RSA算法为DLL并由VB6调用的示例

[ 2016-03-17 07:10:00 | by 嗷嗷叫的老马 ]
折腾了一晚,中途看火影浪费了点时间happy.gif

说正事~~

并不复杂,但有些小细节需要注意,以下是流程:

一,用C#的类型库工程来生成DLL,并设置工程的属性为"COM可见":

http://www.m5home.com/blog//uploadfiles/8_79684.png


    另外...

C#基础知识:另一线程委托调用语法

[ 2015-08-22 22:42:20 | by 嗷嗷叫的老马 ]
最近项目中要用到后台线程去不断地刷一个页面,并在内容有改变时产生一个事件,主窗体中再处理.

后台线程使用的是Threading.Timer,这种定时器本身就是基于线程的.我在它的回调过程中触发了事件,外部调用时就出现提示,说是"从不是创建控件'XXX'的线程访问它"....
先说解决方法:

很简单,把窗体的ImeMode设置为KatakanaHalf(日文半角片假名)就可以了.

搜索了一下,大家都说这是微软的一个BUG,最早看样子出现在VS2005中.

而我是VS2010,也有此问题,因此觉得很奇怪,都这么多年了微软怎么还没补上啊?{shocked...

C#程序发布到XP的注意事项记录

[ 2015-07-27 00:13:14 | by 嗷嗷叫的老马 ]
目前的一个项目是使用C#编写,IDE版本VS2008,使用的.NET Framework是2.0版本.

结果发布到XP时,进程一闪而过,界面都不出来,就直接消失,运行不起来....

从头说起吧,先说界面库.

这项目,其实我更想使用VS2010,虽然我装了2005,2008,2010,2012,2015,但最喜欢的还是20...
GeckoFX与XULRunner毕竟是泊来品,果然是有坑啊......wink.gif

调用语句是Xpcom.Initialize([xulrunner path]);

功能是把XULRunner所在目录输入进去.但后来发现不能有中文,我去rage.gif

还好这个坑有办法绕过去,那就是不能做成解压即用的软件了,必须要打安装...

VS2010环境C#中GeckoFX使用示例(添加了FLASH插件支持)

[ 2015-07-21 22:53:26 | by 嗷嗷叫的老马 ]
与上一篇一样,也是使用第三方浏览器内核,就是不使用IE....没办法,谁叫IE版本太多呢.

不过上一篇说的是Webkit内核,但我下载的那个Webkit.Net库,貌似没有做本地URL处理,也没有对file://进行处理,因此没办法调用本地文件,连自己做了一个127.0.0.1的WEB服务器都不行........

VS2010环境C#中WebKit.Net使用示例(添加了FLASH插件支持)

[ 2015-07-18 08:57:38 | by 嗷嗷叫的老马 ]
最近的项目中需要集成浏览器功能,因为需要加载联机页面。

而之前版本使用的是IE内核,结果遇到了坑,那就是版本问题。。。

XP下,有个别用户由于使用的是其它内核的浏览器(这年头纯粹使用IE的人应该不多了吧),导致了其IE版本还是6。

然后呢,项目中加载的联...

WIN7下VS2012环境字体模糊的解决办法

[ 2015-03-08 16:47:30 | by 嗷嗷叫的老马 ]
这几天在VS2012下用C++写个项目,打开IDE发现代码编辑器以及菜单上的文字都变得极为模糊,这是个啥情况?shocked.gif

http://www.m5home.com/blog//uploadfiles/1_98852.png


在GOOGLE上搜索了一圈,貌似没看到合适的结论与解决办法(其实主要是因为大部分...
看了一下,机器人全是英文的,偶尔还会有拉丁还是希腊字符.

于是把留言本的代码再改了一下,增加了一个统计中文字符数量的函数:

[code]
function GetCHCharLen($str='')
{
        $tstr=$str;

        return mb_strlen(preg_replace('~[^\p{Han}]~u','',$tst...

.Net中MemoryStream对象Write方法影响读写位置

[ 2014-08-07 12:17:37 | by 嗷嗷叫的老马 ]
.Net对象不熟,记录一下,免得忘了.

Write方法影响读写位置,会将当前读写位置增加写入的字节长度.

PS:

本来写的时候是到网上搜索的,结果所有站点都没说到这一点,全都是转MSDN的标准解释,我那个汗.

看了几个页面,没耐心了,干脆新开个工程测试一下shocked.gif

Wince下使用VB.Net中Graphics.DrawImage绘图时避免闪烁

[ 2014-07-24 14:39:28 | by 嗷嗷叫的老马 ]
工作需要,在WINCE下写一个程序,但需要图片按钮,VB.NET自带的按钮没有此功能,需要自己写一个自定义控件.

控件本身是直接从MSDN里抄来的,简单几句代码:

[code]
Imports System
Imports System.Drawing
Imports System.Windows.Forms

'Button with an image cu...

平面刀补算法大概可以了,还不知道有没有BUG.......

[ 2014-06-22 16:05:31 | by 嗷嗷叫的老马 ]
lol.gif代码不公开,虽然不是很复杂,但细节挺多的,上个图吧:

http://www.m5home.com/blog//uploadfiles/go7z`_cew4[mm)a$$z~2}r7_21340.jpg