- 博客(81)
- 资源 (5)
- 收藏
- 关注
原创 C语言中字符串比较
比较方法:1、bcmp(),比较字符串的前n个字节是否相等;2、strcmp(),区分大小写的比较字符串;3、stricmp(),不区分大小写的比较字符串;4、strncmp()或strnicmp(),区分大小写的比较字符串的前n个字符。
2024-02-20 19:47:32 7216
原创 解决ESP32内部RAM内存不足的问题
下图信息说明,外部RAM可用的内存为4049k bytes,当freertos开始运行,进入main函数后,esp_get_free_heap_size()获取到的可用内存为4253k bytes,这是由内部RAM和外部RAM的所有可用的内存的总和,大概可知道可用的内部RAM只有约200k bytes。可见外部RAM极大的扩展了可用内存。由于外部RAM足足有4M 大小,使得esp32在应对语音,图像时依然能应对,对于一个使用了wifi,ble,lwip或者语音识别的程序来说,这4M的内存是必须的。
2023-11-22 20:02:08 2972
原创 stm32对flash的读写保护与解除
一、STM32对内部Flash的保护措施 所有STM32的芯片都提供对Flash的保护,防止对Flash的非法访问 - 写保护和读保护。 1、读保护即大家通常说的“加密”,是作用于整个Flash存储区域。一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种方式读出:A、 通过调试器(JTAG或SWD); B、从RAM中启动并执行的程序; 2、写保护是以四页(1KB/页) Flash存储区为单位提供写...
2022-05-11 10:45:45 6102
原创 Keil MDK-ARM: 将二进制文件包含到程序中(使用汇编语言指令INCBIN)
有时我们需要在主控芯片的代码里访问二进制文件的数据,这个二进制文件可能是校验数据、索引数据表、FPGA程序镜像或者其他由外部工具生成的数据。这和我们在PC上可以使用数据库或者直接打开这个文件访问不同,需要在源代码级别上直接访问这些数据。那么,在Keil MDK-ARM上如何实现这个功能呢?下面介绍一种方法,在汇编语言中使用INCBIN指令,直接将二进制数据文件包含到汇编源代码文件中。这就类似于我们在C语言源文件中,使用include预处理指令包含头文件。首先我们打开Keil,创建一个uV
2022-04-21 10:14:47 1641
原创 stm32对flash的读写保护与解除
一、STM32对内部Flash的保护措施 所有STM32的芯片都提供对Flash的保护,防止对Flash的非法访问 - 写保护和读保护。 1、读保护即大家通常说的“加密”,是作用于整个Flash存储区域。一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种方式读出:A、 通过调试器(JTAG或SWD); B、从RAM中启动并执行的程序; 2、写保护是以四页(1KB/页) Flash存储区为单位提供写...
2021-11-10 21:40:03 3494
原创 三次贝塞尔曲线拟合圆弧
由于工作需求,需要用三次贝塞尔曲线拟合圆弧,所以查阅了一些资料,主要参考如下文章: 使用贝塞尔曲线拟合圆 但是文章写的过于简单,也没有推演步骤,而我需要知道任意圆弧如何求出贝塞尔曲线的两个控制点,所以自己进行了推算,如有疏漏望指正。一、绘图 最开始解这个的时候其实我是用代数去解的,但是后面发现代数运算过于复杂,很难写出解,于是想到通过几何的方式来解这个,比较参考文章里也用了半角的特殊值。于是我尝试从几何的角度来解。先贴我画的几何图,如下...
2021-11-10 21:39:33 1602
原创 非常全的VsCode快捷键
按 Press 功能 Function Ctrl + Shift + P,F1 显示命令面板 Show Command Palette Ctrl + P 快速打开 Quick Open Ctrl + Shift + N 新窗口/实例 New window/instance Ctrl + Shift + W 关闭窗口/实例 Close window/instance 基础编辑 Basic editing按 Press 功能 Function Ct
2021-09-27 11:20:37 169
原创 vc++编译libtiff4.0.4
转自:https://www.cnblogs.com/hanford/p/6168799.html目录第1章简介1第2章命令行编译22.1编译22.1.1使用VC++2010编译22.1.2使用VC++6编译42.2生成的文件5第3章IDE编译73.1编译时重定向73.2编译需要的文件73.3编译时定义的宏8第1章简介libtiff是一个用于读写.t...
2020-12-30 17:41:36 617
原创 libtiff的使用
转自:https://www.cnblogs.com/chaos77/p/6740242.html最近的一个项目用到tif图片格式读写。tif是一种图像文件格式,最初用于黑白传真,后来也支持彩色。相对于其他图像格式,tif有点像容器,支持多页不同尺寸、不同的压缩格式。黑白的压缩算法常见为CCITT 4/6,无损压缩,不支持灰度和彩色;彩色的常见压缩算法为LZW无损压缩,对文字和矢量图形的效果不错,但对于照片的压缩率很差。最新的tif格式也支持jpeg有损压缩和zip压缩,不过很多旧版软件不支持,如XP.
2020-12-30 15:41:22 1510
原创 STM32 输入捕获的脉冲宽度及频率计算
转自:https://blog.csdn.net/qq_26093511/article/details/73909933输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。以下是对脉冲宽度及频率的计算。1、脉冲宽度如下图所示,采集该高电平脉冲的宽度,只需要进入输入捕获上升沿检测,记录当前的发生上升沿时的CNT值,再进行输入捕获下降沿检测,也记录当前发生下降沿时的CNT值,两次CNT值的差值再根据计数的频率就可以算出脉冲的
2020-11-17 18:09:10 1506
原创 转: 不替换降低jlinkarm.dll版本,利用ollydug反汇编J-Flash,完美解决去掉The connected J-Link is defective提示框和解决不能仿真的问题
转自:https://blog.csdn.net/yekui6254/article/details/85272767?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1..
2020-08-15 13:48:20 1589
原创 STM32 USB CDC 虚拟多串口
电梯直达楼主发表于 2017-9-28 22:30:04|只看该作者|只看大图 本帖最后由 creep 于 2017-9-28 22:37 编辑 之前一直使用STM32的CDC虚拟串口和上位机进行数据通信,通常只枚举一个串口基本就能满足要求。但是STM32 USB提供了足够的的端点可以在需要的情况下枚举出多个串口供使用,最新跟着论坛大神飞...
2019-12-02 00:58:17 6779 3
原创 stm32 定时器定时计算方法
Tout = ((arr+1)*(psc+1))/Tclk ;其中:Tclk:定时器的输入时钟频率(单位MHZ)Tout:定时器溢出时间(单位为us).TIM_Period = arr;eg;99.TIM_Prescaler = psc;...
2019-09-23 21:50:18 849
转载 [转载] STM32的Vcap的问题及解决
前言 我有个同事,经常也是设计电路这些的,像stm32f1,stm32f4这些的电路经常在设计,算是经验丰富吧。但是这次有个案子(平台:MDK+STM32F405RGT6(LQFP64封装)),他也参与了改版V2版(之前那个版本是别人设计的,称之为V1版,其实主要就是改原理图后lay板)。当时,改版完成后,审图的时候并没有仔细看CPU电路,以为和之前的电路一样(之前的CPU电路是完全O...
2019-08-31 19:14:29 3150 2
转载 STM32的FSMC
STM32的FSMC真是一个万能的总线控制器,不仅可以控制SRAM,NOR FLASH,NAND FLASH,PC Card,还能控制LCD,TFT.一般越是复杂的东西,理解起来就很困难,但是使用上却很方便,如USB.不过FSMC也有很诡异的地方.如*(volatile uint16_t *)0x60400000=0x0;// 实际地址A21=1,而非A22.[注:0x60400...
2019-01-12 01:39:35 1585 3
原创 关于VS2010遇到了问题需要停止工作
VS2010遇到了问题需要停止工作在使用360进行系统补丁修复的过后, 突然出现了VS2010遇到了问题需要停止工作, 重新安装也没有办法修复.擦, 怎么好好的就不能正常工作了. 差点就重装系统了. 后来冷静下来, 出现问题就在安装系统补丁以后, 是不是补丁兼容性的问题(补丁里有关于.net 4.6的补丁), 就在360里查了当天安装的几个补丁, 卸载以后, 重启电脑, VS2010工作正...
2018-12-04 22:08:21 1343
转载 STM32Fatfs遍历文件的两种方法
//遍历文件//path:路径//返回值:执行结果u8 mf_scan_files(u8 * path){ FRESULT res; char *fn; /* This function is assuming non-Unicode cfg. */ char *p; #if _USE_LFN fileinfo.lfsize = _MAX_LFN ...
2018-11-02 09:32:17 11896 3
转载 牛人对STM32的NVIC_PriorityGroupConfig使用及优先级分组方式理解
STM32有43个channel的settable的中断源;AIRC(Application Interrupt and Reset Register)寄存器中有用于指定优先级的4 bits。这4个bits用于分配preemption优先级和sub优先级,在STM32的固件库中定义如下/* Preemption Priority Group --------------------------
2014-12-02 13:46:41 941
转载 STM32 SD bootloader实现
前几天在网上看到了一个sd bootloader,但是下载需要积分。于是想着自己写个简单的sd卡的bootloader,实际上就是stm32的iap功能了。简单介绍一下stm32的iap吧,以下内容摘抄自网络。IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地
2014-11-07 17:17:50 1759
转载 VC++ 导入自定义资源
在VC中使用自定义资源,FindResource,LoadResource一、添加添加资源时选择自定义,IDE会为你生成一个新的二进制资源,然后你就可以将你已经存在的二进制文件作为自定义的资源类型导入到项目中来了。二、使用要使用自定义资源,我们可能要用到的几个API函数有FindResource、LoadResource和LockResource等,这里每一
2014-11-03 13:51:12 842
转载 C语言字符串操作总结大全(超详细)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长
2014-04-24 11:35:19 523
转载 STM32学习笔记:外部中断的使用
STM32学习笔记:外部中断的使用2011年12月24日 外部中断中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。1 基本概念ARM Coetex-M3内核共支持2
2014-04-22 18:25:38 861
转载 STM32的外部中断配置
STM32的外部中断配置 一.配置中断void NVIC_Configuration(void){ NVIC_InitTypeDef NVIC_InitStructure; /* Set the Vector Table base location at 0x08004000 NVIC_SetVectorTable(NVIC_
2014-04-22 17:51:12 919
转载 MFC单文档视图穷追猛打 (转)
MFC单文档/视图结构穷追猛打目录第一章找回WinMain函数 2第二章InitApplication()函数 2第三章InitInstance ()函数 3第一节:new CSingleDocTemplate 3第二节:AddDocTemplate(pDocTemplate); 5第三节:ProcessshellCommand(cmdInfo) 5第一段A
2014-04-08 09:44:56 505
转载 CnComm串口通讯库v1.5 文档、范例的下载链接
CnComm串口通讯库v1.5 文档、范例的下载链接在我的资源http://download.csdn.net/source/1224069或者http://www.cppblog.com/Files/llbird/CnComm.zipCnComm是由程序员llbird开发的C++串口通讯类,功能丰富实用。类的声明和实现都被定义在一个头文件中,使用方法简单,
2013-12-17 14:49:37 1927
转载 像素亮度对比度的算法公式
亮度对比度的算法公式一副图像的亮度对比度调节属于图像的灰度线性变换,其公式如下:y = [x - 127.5 * (1 - B)] * k + 127.5 * (1 + B); x为调节前的像素值,y为调节后的像素值。 其中B取值[-1,1],调节亮度; k调节对比度,arctan(k)取值[1,89],所以k = tan( (45 + 44 * c)
2013-12-17 14:42:35 8296
转载 FatFS文件系统详解-附移植建议
最近做的spi flash,本打算弄个文件系统,由于之前用过了JFFS、YAFFS和TrueFFS,代码量都相当的大,这次想找款代码量不那么吓人的,学习一下,听说配置会相对复杂一些。选来选去,最终选定了FatFS,代码量足够的小,最新的R0.09版本只有1个.c文件(当然,还有一个底层的要自己写,option文件夹里的无视),老点版本就更小了。而且更新很频繁,用户量也够大,就选定它了。尽管最后由于
2013-07-08 10:37:16 1272
转载 CToolTipCtrl使用详细解说(转)
ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法。一般用法步骤:1、添加CToolTipCtrl成员变量 m_tt。2、在父窗口中调用EnableToolTips(TRUE);3、在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,
2013-06-15 10:14:00 661
转载 Scintilla! 一个超棒的免费源代码编辑控件
Scintilla是一个免费的源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。我是在做毕业课题的时候发现的这个编辑控件,使用后发现它实在是强大和稳定,作为源代码编辑控件,我们能在普通的的文本编辑控件中能看到的功能,Scintilla都完全能够实现,而且,它还能够提供很多编辑和调试源代码时有用的特殊功能。包括语法高亮显示,错误指示
2013-06-08 20:30:44 1128
转载 免费开源的编辑器 - SciTE
SciTE,早有耳闻的一个开源编辑器,Windows/Linux两个平台都有很好的支持,今天偶然的机会把它下了下来,用VC编译后,使使,感觉还不错!SciTE是一个基于SCIntilla的文本编辑器,支持C/C++/VB/Parscal/Smalltalk/Ada/Python/Java等许多语法的高亮显示,支持类似.net ide里的分段显示代码的功能(Great!),非常适合编写C/S
2013-06-08 20:29:23 998
转载 使用概述 scinitlla
如何使用scinitlla控件呢?scintilla控件需要两个头文件,Scintilla.h和SciLexer.h,这里定义了消息宏,所用到的数据结构类型等等。在所要用到的cpp文件中包括这两个头文件即可。scinitlla控件与主程序交互通信是通过消息传递的。在窗体类中,创建一个scinitlla控件,然后发送消息给控件,以达到不同的目的。有的时候,我们也需要控件的反馈,比如当用户点击
2013-06-08 20:28:43 718
转载 数学之美---------贝塞尔曲线
自从上个世纪60年代,雷诺汽车公司第一次把由手工设计车体(粘土)的任务转到由计算机来完成,二维的贝塞尔曲线就成了计算机图形学中最有用的曲线之一(继直线和椭圆之后)。在PostScript中,所有曲线都用贝塞尔曲线表示——椭圆线也用贝塞尔曲线来逼近,贝塞尔曲线也用于定义PostScript字体的字符轮廓。今天的我们要感谢Pierm Bezier,是他通过一些数学的计算和推导,最后找到了这套近乎完
2013-06-08 20:24:56 1707
转载 点在多边形内的c代码
//#define DEBUG#i nclude #i nclude #ifdef DEBUG #i nclude #endifusing namespace std;const double INFINITY = 1e10; const double ESP = 1e-5; const int MAX_N = 1000;struct
2013-06-08 20:23:33 696
转载 新发现判断一个点在多边形的最高效率算法 推荐*****
//////////////////////////////////////////////////////////////////计算点是否在多边形内int msIntersectPointPolygon(pointObj *point, shapeObj *poly){//主函数1-在 0-不在 int i; int status=MS_FALSE; for(i=0
2013-06-08 20:22:32 819
转载 虚函数的真相完整版(VC编译器如何实现“virtual ”规则)
( 1 )virtual 虚函数 先看一段简单代码:Code Segment:Line01: #includeLine02:Line03: class Base {Line04: public:Line05: virtual void __stdcall Output() {Line06: pr
2013-04-10 10:09:22 671
转载 对于STM32软件复位
对于STM32来说软件复位有两种方式: 1)采用官方自带的软件库 在官方软件库的stm32f10x_nvic.c 文件里 直接提供了 系统复位的函数 /******************************************************************************** Function Name
2012-12-29 11:40:53 912
转载 BSTR转换成char*
BSTR转换成char* 方法一,使用ConvertBSTRToString。例如: #include #pragma comment(lib, "comsuppw.lib") int _tmain(int argc, _TCHAR* argv[]){ BSTR bstrText = ::SysAllocString(L"Test"); char* lpszTe
2012-11-23 16:56:16 557
转载 FatFs移植笔记(R0.09)
FatFs移植笔记(R0.09)首先将文件拷贝到工程中,其中包括diskio.h、ff.h、integer.h、ff.c、ffconf.h。创建文件diskio.c。将这些文件添加到工程中。根据系统类型设置ffconf.h。_FFCONF是代表了版本号,不做处理。函数和缓冲区配置_FS_TINY设置缓冲区的位置,假如设置为0,也就是每个文件(FIL结构体)中带一个b
2012-06-11 08:45:39 838
转载 LCD中6800和8080的区别
LCD中6800和8080的区别 有好多朋友关于6800/8080的概念可能不是太清楚。经常问些为什么???其实主要区别是总线的控制方式上。对于内存的存储,需要数据总线和地址总线,这都是一样的但对于存取的控制,它们则采用了不同的方式——8080是通过“读使能(RE)”和“写使能(WE)”两条控制线进行读写操作6800是通过“总使能(E)”
2012-04-19 14:27:19 2132
JLink-Windows-V796g
2024-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人