自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (8)
  • 收藏
  • 关注

原创 从AC6重返AC5

前几天重装电脑系统,顺便把所有软件都更新了,MDK5.37版不支持AC5,自然就想把代码更新到AC6,没想到遇到各种坑,折腾了几天,最终没有爬过去,只好退回到AC5

2022-06-07 22:17:20 200

原创 Win11 更新后不能启动

Win11 更新后不启动

2022-05-19 21:52:48 890

原创 MFC线程同步一例

从用线程那天开始,一直受到线程同步的困扰,变量、数组和指针莫名其妙地被改了,宕机,各种锁加了不少,互相等着,与顺序执行效率差不多,有时会锁死,不知道各位高手是怎么处理的。我这边只能按具体情况分别处理,下面分享最近遇到的一个问题。D2D1_GEOMETRY_RELATION nLock = !!m_pLockGeometry ? m_pLockGeometry->CompareWithGeometry(*pCar->m_pGeoAGV, mtx2, 100.f) : D2...

2021-09-01 16:38:16 60

原创 Visual Studio 2019 fatal error C1001: 内部编译器错误

VS2019 编译Release时出现如下错误:1>f:\ghcy\waitpoint.cpp : fatal error C1001: 内部编译器错误。1>(编译器文件“D:\agent\_work\20\s\src\vctools\Compiler\Utc\src\p2\main.c”,第 195 行)1> 要解决此问题,请尝试简化或更改上面所列位置附近的程序。解决办法:修改项目属性/配置属性/链接器/优化/链接时间代码生成/使用链接时间代码生成 (/LTCG)不过奇怪的是,

2020-10-19 21:04:11 4439

原创 单片机双向IO接口电路,3.3V转48V1A,可接继电器

单片机开发中经常用到电平转换,最简单的方法是外接ULN2801/4,无需电阻电容等,一块芯片全部搞定,不过有个缺点是输入输出分开设计。下面介绍一种双向电路,即能输出又能输入,一般双向电路只能传信号,这种电路可以接断电器和电机等功率器件。工作原理搜双向电平转换电路,这里加一个Q2 PNP三级管,目的是增加输出电流到1A,可以接继电器和小功率电机。...

2020-10-18 11:24:31 853 2

原创 STM32 HardFault_Handler故障一例

测试时不小点碰到STM32单片机电源,造成电源高频跳动,再启动后程序运行灯不亮,点击Stop按钮发现程序挂在 HardFault_Handler(void) 循环中。右键单击堆栈列表项,发现出错位置代码:return m_nVer == m_pData->nVer; 这一句是检测备份Flash数据的版本,我在系统中写了一段程序,用于断电时保存数据到Flash中,再加电时从Flash中恢复,由于电源高频跳动Flash出现了错误。打开Peripherals >Core Peripherals...

2020-06-15 20:06:58 368

原创 MFC 使用图形变换矩阵的简单方法

MFC用GDI绘画,没有图形变换矩,很不方便,查了很多都是自己写的,这里介绍一个简单方法,就是用D2D的矩阵变换。1、包含头文件 #include "d2d1helper.h"2、在左边的解决方案资源管理器的项目上点右键/属性/配制属性/链接器/输入/附加依赖项/填入D2d1.lib,如果有多项用分号分开。示例代码 D2D1::Matrix3x2F m_mtxCar = D2D1::Matrix3x2F::Rotation((FLOAT)D1120) // 旋转坐标 * D2D1::M

2020-06-13 23:13:39 720

原创 STM32 不能下载程序的解决办法

STM32 不能下载程序的解决办法有一次测试超频,死机,不能下载程序还有一次把下载口PA13占用了,不能下载程序解决办法:把BOOT0接3.3V,不从内部FLASH启动,可以下载新程序

2020-05-17 10:37:40 3891

原创 VIM粘帖WINDOWS内容

学习ROS用到VIM,好像回到几十年前用DOS的感觉。在WIN10中装了一个子系统UBUNTU18.04,使用VIM编辑器,不会从WINDOWS中粘贴文本,上网查了很多,各种方法都不行,无意中点了一下右键,成功了,操作步骤如下图。打开VIM,按INSERT键切换到插入模式,左下角显示INSERT。从WINDOWS网页中复制一段文字,然后在VIM中点右键,剪贴板的内容谅会复制到光标处,可能是WIND...

2020-04-16 17:26:55 760 1

原创 S型加减速程序,C++,PLC,AGV

做无人驾驶AGV项目,起动和停车冲击非常大,参考牛人的博文https://blog.csdn.net/Septembernine/article/details/53125828,写了一段S型加减速程序,也称抛物线加减速,实际应用效果不错,分享给大家,代码中有比较详细的注释。图形MFC++// DLGDlg.cpp: 实现文件//#include "pch.h"#inc...

2020-04-11 14:04:07 2012 2

原创 Thinkpad W530 笔记本关机后耗电问题

有一台使用多年的 Thinkpad W530 笔记本,出现几个问题,指纹不能用、双屏时两个屏的位置移不动,关机后耗电,一晚上减少15%,一直以为是软件的问题,重装等都试过了,不起作用。一天偶然发现指纹有点热,怀疑是短路了,从网上找了一个拆机视频,把指纹和触摸板的线拆了,重新开机,这几个故障都好了。真是奇迹,原本以为不相连的几个故障居然是一个问题,分析原因可能是因为指纹短路造成电压不稳出现以上问题。...

2020-03-11 15:21:11 663

原创 解决 Encountered an improper argument 错误

Keil 5.27版本,调试时会出现 Encountered an improper argument 错误,大部分操作都失效,不能退出,只能结束进程。百度说是文件路径中有汉字,删除汉字后问题依旧,偶然发现,删除全部断点后,故障消除。如上图,,分享给大家。...

2020-03-09 19:30:02 9965 5

原创 STM32实战十 USART串口波形

开始用示波器查看USART串口波形(直接测量IO口),不容易搞清楚其意义,反复研究,了解一二,总结如下:由上图看出,无信号是高电平,发送三个字节,0x09 0x02 0x00,每个字节1帧,每帧由三部份组成:1、一个低电平起始位,不能设置,一定有。2、八位数据,也可以设成七位,高电平是1,低电平是0,二进制数据流是反的,最左边是低位3、停止位,0.5-2位,高电平,软件设置,...

2019-10-14 16:51:31 1882 1

原创 Keil(MDK)4升级到Keil(MDK)5

把Keil(MDK)4升级到Keil(MDK)5,走了一些弯路,终于成功了,记录如下,也适用于新建工程。1、下载、安装、注册Keil(MDK)5,具体方法百度上很多。2、下载与硬件对应的软件包http://www.keil.com/dd2/Pack/到任意文件夹,双击安装。3、打开软件,新建工程自定义工程名称选择型号选择运行库,用自带库时在这个界面...

2019-07-12 12:03:04 6974 1

原创 STM32开发过程的常见问题

STM32开发过程中遇到的一些问题,记录如下。Q1:下载后程序不运行,反复排查代码没问题。A1:栈空间太小,打开startup_stm32f10x_hd.s,把 Stack_Size EQU 0x0200 后面这个数改成0x0800就好了(512 > 2000)。Q2:DAC+DMA生成正弦波,有时正常,有时不正常。A2:DAC_InitStructure结构中少初始化了一项...

2019-07-06 20:20:47 1005

原创 STM32实战九 编码器

这一章编写编码器程序,通过定时器连接编码器,原理和细器节这里不多说,参考代码段中的网页,有两个注意事项,一是所有网上的参考代码都没有设置第二个通道,默认没有滤波,虽然能用,但是通道2抗干扰能力差,容易造成误计数。二是volatile u8 m_bInterrupt,说明在别处(计时器)会改变这个变量,不优化,因为优化后把很重要的代码删除了,详见setData函数说明。可用5个定时TIM1、TIM3...

2019-07-05 21:43:12 1335

原创 STM32实战八 DAC/ADC

这一章编写DAC和ADC程序,即数模/模数转换。程序中封装了两个DAC,各1个独立通道,对应输出脚为PA4和PA5,提供两个方法,ADDA::daDMA(Timer & tim)成员方法以DMA方式按预定数据生成两个正弦波,通道1(PA4)是半幅波形,通道2(PA5)是全幅波形。ADDA::da()成员方法把指定内存的数据转换成模拟信号,未使用DMA,因为已经是一一对应。模数转换使用...

2019-07-01 20:48:49 3285

原创 STM32实战七 数字滤波

数字滤波是数据处理是常用、灵活、有效的方法。前面的按键程序已经用到了滤波,属于开关量滤波,这里要讨论的是模拟量滤波程序,包括最常用的两种方法,中值滤波和平均值滤波。中值滤波的原理是,每次取最近几个数的中间值作为输出数据,每个波形的最高和最低几个数被滤掉,优点是基本保留原有数据,能有效抑制大幅值低频尖峰干扰,俗称椒盐噪声。平均值滤波,就是对最近一些数求平均,是最常用最简单的方法,对高频低幅值...

2019-06-30 15:34:58 10367

原创 STM32实战六 PWM加移相正交

这一章编写PWM程序,使用TIM3以两个通道,完全映射到PC6和PC7,除普通PWM输出外,增加移相正交PWM功能,为后面的编码器计数模式提供信号源。PWM.h#ifndef __PWM__#define __PWM__extern "C" { // 兼容C,按C语言编译,Keil5中的包含文件已经加入了C++兼容,不用再加这一段#pragma diag_remark 36...

2019-06-22 22:42:21 2823

原创 STM32实战五 板载LED显示数据

写到第五章,终于有可以看见的结果了。不过磨刀不误砍柴功。正因为前面的基础,才有今天的成果,而且有一定的实用价值。封装一个BoardLED类,主要功能是利用板载LED显示数据,类似于 Morse code 电报码,以点亮时间的长短表示二进制数据的0和1,最多4位二进制,十进制15,可以扩展到更多。下面的程序显示主循环周期时间,单位1us,实际上可以用来显示设置运行状态。购买或开发不同的开发板,LED...

2019-06-16 17:19:11 895

原创 STM32实战四 定时器和按键

这一章编写定时器,包括定时器基类 Timer 和派生的通用定时器 GeneralTimer。基类对定时器参数进行封装,通用定时器封装一些定时应用,对应PLC的一些功能,包括:1ms定时中断 100个32位数字时间继电器,最小1ms,最大0xffffffff,大约50天。 一个高精度回调函数,微秒级误差,最小定时间隔1ms。 按键抖动和干扰过滤,并产生按键上升沿和下降沿。代码中有详细的说...

2019-06-13 22:33:00 3671 3

原创 Win10 清理备用内存

Win10启动后,把剩余的内存几乎都变成了备用内存,所谓备用内存就是Windows临时占用作缓存,如果别的应用程序申请内存,Windows让出来。如下图:但是有些应用程序,如SolidWorks,它一个资源监视器,可用的内存小于一定的值就提示内存极低,造成卡顿,甚至死机。网上有很多人提问,但是没有解决办法。为此我编写了一个MFC小程序,清理备用内存,原理很简单,先申请内存,再释放,...

2019-06-13 20:24:00 12603 3

原创 STM32实战三 C++ IO.cpp

这一章开始编写代码,主要是两个方面,一是C++,二是进行简单的IO封装。其它教程一般是用C语言,从按键或LED灯开始,比较直观,容易上手,但与实际应用有一定的区别,这里要做的是实用控制程序,开始就比较正规,C++是发展趋势,所以就从这里开始。说是C++,实际是C和C++的混合程序,系统提供的都是C,新写的代码是C++,先从简单的IO开始,添加两个文件IO.cpp和IO.h代码如下:IO.h...

2019-06-11 07:32:40 801

原创 STM32实战二 新建工程

这一章新建一个工程,主要目的是练习新建C++工程,生成比较干净的代码,后来发现没在太大的意义,直接在原示例中删除文件,然后新建cpp文件即可,也可以把原有main.c的属性变成c++,方法是main.c/右键/Options for file 'main.c' /Properties标签/File Type:/改为C++ Source file,这样更方便。不过下面还是记录一下新建工程的过程,对熟...

2019-06-01 14:54:39 396

原创 STM32实战一 初识单片机

一直用PLC搞智能控制,最近研发新产品,因为控制点太多,想改用单片机,一阵某度之后,选用STM32,功能足够。开始想自己设计电路,很久没有Altium了,水平本来也不高,放弃了。从宝宝上买了一块开发板STM32F103VET6(单片机主体),一个ST-LINK仿真器(下载和调试程序),一些杜邦线(各种公母头),一些发光管(实际没有用上),开始奇妙的单片机旅程。与客服联系,要了好多资料,客服...

2019-05-28 23:21:27 731

原创 WIN10文件备份

想用Win10自带的文件备份功能,一次非常不好的体验。开始/设置/更新和安全/备份/更多选项,把默认文件夹全部删除添加C:\Users\hcl-w530\Desktop\Works加不上,没有错误提示如果先加C:\Users\hcl-w530\Desktop再加C:\Users\hcl-w530\Desktop\Works可以加上去,但是备份了很多我不想要的文件咨询客服https...

2018-11-26 21:14:02 523

原创 电磁兼容一例

把普通电动搬运叉车改造成AGV机器人,获取原有编码器信号时有严重的电磁干扰,反复试验,貌似找到了解决办法。

2017-12-07 22:25:49 294

原创 MFC线程同步那些事

讲述线程运行及退出时遇到的一些问题和解决办法以及注意事项。一个工业控制项目,用USB口采集数据,程序结构是主进程负责界面和算法,创建一个子线程负责USB通讯,读取数据,死循环。

2016-12-06 18:17:48 506

原创 636型耳塞机

万里青年牌636型耳塞机,阻抗800前天收拾东西发现这个,线还很软,插到电脑上,还能响,勾起不少回忆,那时一个三极管1块多钱,攒一年才能揍齐一个单管机的元件,找一块电工板用锥子扎眼,自己布线,用香皂盒做壳,反复折腾好几天,居然响了,高兴的跳起来。上网一搜,怀旧的人还不少,贴出来,留个纪念。怀念那个年代,很苦,也很有乐趣。

2016-09-20 22:00:05 782

原创 日版IPhone5完美上3G

日版IPhone5,装上联通卡后不能用,总是搜信号,于是找朋友、上网、联系客服等,进行无数次试验,最终完美正常使用,包括3G,好东西大家分享。

2014-08-27 15:26:00 8121

原创 已知直线上的两点 A(x1, y1), B(x2, y2) 和另外一点 C(x0, y0),求C点到直线的距离。

数学知识太差,一点点积累,高手勿喷。1. 先求出AB向量a = ( x2-x1, y2-y1 )2. 求AB向量的单位方向向量b = √((x2-x1)^2 + (y2-y1)^2))a1 = ( (x2-x1)/b, (y2-y1)/b )3.求出CA的法向向量(或CB的法向向量)c = ( y0-y1, -(x0-x1) )4. 距离 = AC法向向量与BC向量

2014-05-05 11:14:25 6907

原创 MFC 自定义非窗口类控件中实现 ON_COMMAND 和 ON_UPDATE_COMMAND_UI

MFC 定制界面会用到自定义非窗口类控件,因为每一个小按钮都从窗口继承时浪费资源,效率低。本文描述如何在自定义非窗口类控件中实现 ON_COMMAND 和 ON_UPDATE_COMMAND_UI。

2014-04-21 14:57:26 4633

原创 九宫格计算

九宫格计算

2014-04-14 16:59:12 1689

原创 CArray::SetSize 的用法

CArray 使用不当会产生内存碎片,应先调用SetSize(),MSDN和网友都这么说,但具体怎么用还不是太清楚,先看代码: // 1. 声明arr1后直接加CArray<int> arr1;arr1.Add( 1 );TRACE( "1, 0x%x, ", &arr1[0] );arr1.Add( 2 );TRACE( "0x%x, %2i\r\n", ...

2014-03-18 18:42:22 10566

原创 MFC 全屏与窗口切换,类似浏览器的F11功能

应用程序中经常用到全屏与窗口切换,就像浏览器中的F11功能,用ModifyStyle加ShowWindow,方法简单,规范,效率高(比MoveWindow),容易还原。WriteInt,把结果保存到注册表中,下次打开时用GetInt直接用,注意必须用CWinAppEx类

2014-01-14 14:39:17 1749

原创 CListCtrl中加入排序小图标,CHeaderCtrl::GetItem可能被误用。

因为项目需求,要在CListCtrl中加上排序小图标,Google到博文http://blog.csdn.net/liujiannanit125/article/details/6249039,感谢博主的奉献。不过实际使用中出现一个问题,加上这段代码后,经常出现写入内存错误,时有时无,很不好找原因。怀疑是pHdrCtrl->SetItem( i, &hdi );语句写入时出错,注释后故障以旧,

2012-07-09 17:03:08 4380 1

原创 VC2010 操作 MSWORD

每隔一二年就要用一次 WORD 或其它 MSOffice 组件,好多次了,每次都忘的一干二净,从头google,这次又要用,顺便记下来,以备不时之需,同时分享给大家。开发环境 WIN7-X64, VC2010, MSOffice2010。1. 在VC2010项目名称上右击,选择类向导...2.在右上角的添加类中选择“类库中的MFC类”3. 在新对话框中选择文件,点击右边的“

2012-06-11 15:56:02 12056 8

原创 Cookie path 参数

一直没注意Cookie path 参数的意义,最近写网页简繁体转换的功能,用Cookie保存当前的状态,var JF_cn = "ftcn" + self.location.hostname.toString().replace(/\./g, "");$.cookie(JF_cn, toFT);功能是实现了,但是不同的页面独立转换,不能统一,查了半天没找到问题,最后用Chrome查

2012-04-21 09:36:50 2916

原创 新做的自定义Ribbon

新做的自定义Ribbon,先贴个图,以后再写文章

2012-04-20 14:31:26 1015 1

原创 修改 CMFCRibbonGallery 的默认按钮数

CMFCRibbonGallery 中的默认按钮数是6,SetIconsInRow 方法可以设置下拉框中的按钮列数,正常显示框中的按钮数确是固定为6,不能改变,google以后建立一个新类继承于这个类,把默认列数设为100,而 CMFCRibbonGallery 会根据窗口宽度自动调整实际列数,效果极好。原代码如下。 #pragma once// TTMv8RibbonGallery

2012-03-19 18:38:59 2348 2

STM32实战系列源码,按键/定时器/PWM/ADC/DAC/DMA/滤波

博文《STM32实战一》~九的源代码,用C++封装了STM32的大部分功能, 无死循环的防抖按键,多用途定时器,100个时间继电器,PWM,ADC,DAC,DMA,中值滤波,平均值滤波,可直接用于工业级控制,主循环周期小于20us。开发环境Keil4.72,CPU型号STM32F103VET6,不同的开发板引脚可能不一样,请注意。

2019-07-06

ClearMemory.zip

Win10启动后,把剩余的内存几乎都变成了备用内存,所谓备用内存就是Windows临时占用作缓存,如果别的应用程序申请内存,Windows让出来。但是有些应用程序,如SolidWorks,它一个资源监视器,可用的内存小于一定的值就提示内存极低,造成卡顿,甚至死机。网上有很多人提问,但是没有解决办法。为此我编写了一个MFC小程序,清理备用内存,原理很简单,先申请内存,再释放,就多出一块可用内存了。资源中包括可执行文件和源程序,编写环境Microsoft Visual Studio,64位,因为用了静态库,执行文件比较大。使用说明见https://blog.csdn.net/hhhh63/article/details/91883148

2019-06-13

批量转换SolidWorks工程文件到pdf

SolidWorks中手动操作大量工程文件另存为pdf很费时还容易漏,搜了一下,有的收费,有的是假的。于是自己查资料写了一个简单的宏,其实就是VB。十多行代码,直观,简单,高效。操作方法如下: 1. 建立目标文件夹 E:\temp\PDF\,或修改代码中的变量pdfPath 2. 在SolidWorks中打开所有工程文件 3. 点击工具菜单/宏/运行/选择SLDDRWtoPDF.swp/确定。所有工程文件转换成PDF保存到E:\temp\PDF\文件夹中,同时关闭文件。

2014-12-05

MFC自定义界面HUI,高效简单,含详细注释和示例

MFC自定义界面HUI,高效简单,含详细注释和示例。 HUI包括基本控件、按钮、标签、编辑框、表格、悬停提示等,可组合出更多功能。资源占用少,效率高,能在低端机上运行,流畅不闪烁,完全满足工控等各种专业软件实现个性化要求。 本资源是“http://download.csdn.net/detail/hhhh63/6961889”的正式发布版。包括3个项目,Hui、HuiDemo1和HuiDemo2。 一、Hui项目 本项目是DLL项目,包括完整的界面库,使用双缓存,局部重画等技术,性能优异。为保证在不同的MFC版本中使用,本次上传提供了这部分的源码,一般不要对其改动。 二、HuiDemo1 简单的应用示例,包括窗口分割,控制面板和主显示区等,展示控件各方向停靠、自动充满、全屏切换、记忆窗口位置和大小、选项设置和保存注册表等功能,用户可直接以此为基础开发新项目。如需扩展其它功能,可从HuiDemo2查找复制相应代码。 三、HuiDemo2 除HuiDemo1的所有功能外,还包括界面库的全部功能和其它实用扩展功能,左中右三栏式分布,左右固定宽度,中间栏大小可变。 1、左边是属性栏,固定宽度,上边是时钟,下边是鼠标信息,当鼠标移到中间的图像区时显示鼠标位置和图像值。 2、中间是图像区,演示如何动态生存索引图像,从下向上移动,自适应大小,长宽比不变,点右边的调色板按钮改变颜色,点保存按钮把当前图像保存到桌面。 3、右边上边是控制栏,在中间的图像区中画各种几何图形,并计算几何图形包围的图像数据的最大值,最小值和平均值。 4、右边下边是表格演示,显示Windows文件夹下的文件列表,自动充满窗口区,随窗口大小改变显示项数,保证界面美观,最下面是搜索和定位功能。 四、运行环境,VC2010或更高版本。 欢迎大家下载并提意见,本资源版权归作者所有,分享供大家研究学心,不得用于商业用途,如有特殊要求请与本人联系。

2014-08-03

8位图像滤波

提供8位256色图像的3x3中值滤波和3x3加权平权滤波算法类,效率高

2014-05-20

MFC自定义界面包括按钮标签等,用于工控,展示等

自定义界面不用任何windows控件,包括按钮,标答、窗口分割,动态自适应大小,全屏切换(F11),快捷键(S),对话框和主窗口交换数据,属性读取和设置,记忆上次的窗口状态,双缓存显示,不闪烁,自定义非窗口类自动处理ON_COMMAND事件 MFC2010 详见代码和Hui.h 正式版界面资源上传了,新增了一些控件,修复BUG,地址:http://download.csdn.net/detail/hhhh63/7710711

2014-02-25

JQuery 图片浏览

JQuery 图片浏览 淡入 淡出,替代focus.swf

2011-01-04

JQuery 图片浏览和动画效果 淡入 淡出

JQuery 图片浏览,淡入淡出,可设定时间,不限数量,有高级和普通两个演示页面,随意改动,代替focus.swf。

2011-01-03

空空如也

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

TA关注的人

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