- 博客(36)
- 收藏
- 关注
原创 电脑资源管理器右击文件卡死问题
360>功能大全>系统工具>右键管理,关闭了WPS或者福昕和百度网盘这几个选项,搞定。我的主要是百度云盘的右键冲突了。另外,用火绒也有类似的右键管理功能。
2025-01-20 09:51:45
137
原创 Modbus crc16校验
CRC-16 / MODBUS :1)CRC寄存器初始值为 FFFF;即16位全为1;2)CRC-16 / MODBUS的多项式A001H (1010 0000 0000 0001B) ‘H’表示16进制数,‘B’表示二进制数计算步骤为:(1).预置 16 位寄存器为十六进制 FFFF(即全为 1) ,称此寄存器为 CRC 寄存器;(2).把第一个 8 位数据与 16 位 CRC 寄存器的低位相异或,把结果放于 CRC 寄存器;(3).检测相异或后的CRC寄存器的最低位,若最低位为1
2022-03-23 15:58:01
3212
转载 STM32 ADC 单次模式、连续模式、扫描模式(转载)
ADC单通道:要求进行一次ADC转换:配置为单次模式使能,扫描模式失能。这样ADC的这个通道,转换一次后,就停止转换。要求进行连续ADC转换:配置为连续模式使能,扫描模式失能。这样ADC的这个通道,转换一次后,接着进行下一次转换,不断连续。ADC多通道:必须是扫描模式要求进行一次ADC转换:配置为单次模式使能,扫描模式使能。这样ADC的多个通道,按照配置的顺序依次转换一次后,就停止转换。要求进行连续ADC转换:配置为连续模式使能,扫描模式使能。这样ADC的多个通道,按照配置的顺序依次转换一次后,接
2022-02-23 18:59:22
4081
2
原创 STM32F4 HAL 库开发报错:Hal_StatusTypeDef is undefined的解决办法
1、直接在头文件出添加#include "stm32f4xx_hal.h"即可。
2022-01-12 15:41:22
1416
2
转载 一句话输出没有结束符的字符串
编程时往往存在这种情况:函数接口传给你一个没有“\0”结尾的字符串str和他的长度str_len,调试的时候你需要将其打印出来。一般人都会这么做:void print_str(const char* str, unsigned int str_len){unsigned int i=0;for (; i < str_len; i++)printf("%c", str[i]);printf("\n");}但是其实一行代码就可以搞定printf ("%.*s\n", str_len,
2022-01-07 17:12:09
695
转载 MDK调试:设置断点处,代码运行的次数
https://www.cnblogs.com/ramlife/articles/14024516.html
2021-11-12 14:35:06
467
转载 修改Win10 alt+F4默认选项为关机
1、win+r打开路径计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced,当前目录下新建DWORD(32位)文件,命名为“Start_PowerButtonAction”。设置值为2(16进制)。2、重启电脑。alt+F4默认为“关机”。3、参考表:4、参考文档:https://www.cnblogs.com/Jack-zhao/p/14884294.html#!commentsht
2021-11-01 14:24:09
8499
1
原创 VScode 开发stm32无法识别uint32_t,uint16_t,uint8_t问题
1、添加头文件#include “stdint.h”。2、在c_cpp_properties.json文件中添加__CC_ARM即可。如下图:
2021-10-26 18:30:51
11429
6
转载 断言assert函数,C语言assert函数完全攻略
断言assert函数,C语言assert函数完全攻略http://c.biancheng.net/c/assert/
2021-10-08 18:14:57
269
转载 MDK调试模式下,NVIC各项含义
Peripheral SimulationFor STMicroelectronics STM32F103ZD — Nested Vectored Interrupt Controller (NVIC)Simulation support for this peripheral or feature is comprised of:Dialog boxes which display and allow you to change peripheral configuration.These s
2021-09-30 17:29:50
1411
原创 MDK中利用宏定义__DATE__和__TIME__设置产品的代码固件版本
文章目录前言一、__DATE__和__TIME__是什么?二、使用步骤1.引入库2.参考代码总结前言STM32开发中,利用宏定义的__DATE__和__TIME__设置产品的代码固件版本:为了方便在编译代码的时候,自动生成代码固件的版本号,所以我们需要用到__DATE__和__TIME__这两个宏获取记录编译代码时的时间。提示:以下是本篇文章正文内容,下面案例可供参考一、__DATE__和__TIME__是什么?这两个宏在编译的时候会记录当前的编译日期时间,如:Mar 16 2011 18
2021-08-06 17:38:29
2980
原创 Win10系统添加 Win10 LTSC2019闹钟
1、本文主要针对没有windows闹钟的情况。2、下载Win10 LTSC 2019闹钟应用,并解压:http://www.winwin7.com/soft/xtbd-2695.html链接:https://pan.baidu.com/s/1S_g6XUIezeF8_Q0rJ09cBQ提取码:68gs3、搜索Windows Powershell,并以管理员模式运行:4、在根据目录位置分别添加*.appx文件和*.appxbundle文件。5、查看开始栏,已经安装好闹钟:...
2021-08-02 14:22:02
3012
原创 STM32CubeMx官网下载HAL库文档资料
1、直接搜STMCubeMxFxx即可。https://www.st.com/zh/embedded-software/stm32cubef4.html#documentation
2021-07-13 13:45:02
919
原创 KEIL编译生成bin文件,并输出内存使用情况
一、STM32CubeMX生成的代码输出bin文件输出bin文件:Run#1框填入的是:fromelf.exe空格–bin空格-o空格"$L@L.bin"空格"#L"。“–bin”是两根英文短杆。fromelf.exe --bin -o "$L@L.bin" "#L"编译的时候,输出详细内存使用信息:Run#2框填入的是:fromelf.exe空格–info=totals空格"#L"。“–bin”是两根英文短杆。fromelf.exe --info=totals "#L"...
2021-07-09 17:13:24
650
转载 STM32F4 串口DMA
串口DMA方式收发 笔者使用的是STM32F407VET6,共包含6路串口,页尾处程序已将全部串口的DMA收发配置完成,本文仅以串口1为例进行讲解。(查看代码可直接跳至第二节或页尾处下载)1 STM32F4 DMA 简介 DMA,全称为:Direct Memory Access,即直接存储器访问。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。
2021-06-17 10:46:46
2755
转载 C语言定义:__DATE__和_TIME__
/*******************************************************************File Name: 05-ymd.cAuthor: flyMail: XXXXXXXX@icode.comCreate Time: Thu Sep 7 16:43:30 2017******************************************************************/#inclu
2021-06-01 10:00:16
1082
转载 C语言无符号数运算问题
C语言中有符号数和无符号数进行运算(包括逻辑运算和算术运算)默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了。unsigned int和int进行运算直接看例子来说明问题吧复制代码#include using namespace std;int main(){ int a = -1; unsigned int b = 16; if(a > b) cout<<"负数竟然
2021-05-17 16:48:27
2237
转载 操作系统常见面试题
1.进程的常见状态?以及各种状态之间的转换条件?就绪:进程已处于准备好运行的状态,即进程已分配到除CPU外的所有必要资源后,只要再获得CPU,便可立即执行。 执行:进程已经获得CPU,程序正在执行状态。 阻塞:正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态。 2.进程同步进程同步的主要任务:是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。 同步机制遵循的原则...
2020-12-22 01:29:20
1066
转载 任务、进程、线程之间的区别
**任务(task)**是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以作为一个进程来实现,也可以作为一个线程(或作为一个中断任务)来实现。 **进程(process)**常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己。 **线程(tread)**则是某一进程中一路单
2020-12-14 09:55:46
2323
转载 volatile用法
许多程序员无法正确的理解C语言关键字volatile。这并不奇怪,大多数C原因书籍不过一两句一带而过。本文将告诉你如何正确使用它。在C/C++嵌入式代码中,你是否经历过下面的情况:● 代码执行正常–直到你打开了编译器优化● 代码执行正常–直到打开了中断● 古怪的硬件驱动● RTOS的任务独立运行正常–直到生成了其他任务如果你的回答是“yes”,很有可能你没有使用C语言关键字volatile。你并不是唯一的,很多程序员都不能正确使用volatile。不幸的是,大多数c语言书籍对volatile的藐
2020-06-15 19:19:37
404
原创 MDK530编译出现ARM版本不符问题
1、用最新版的MDK530编译原来的代码出现问题:错误:“35; pragma import”是ARM编译器5的扩展,ARM编译器6不支持它[-Warmcc pragma import]在仙女棒里面将ARM6修改为ARM5:与此同时,在sys.c里面__asm void MSR_MSP(u32 addr)这个函数的报错也会迎刃而解。...
2020-06-08 10:37:51
1688
1
转载 ARM寄存器及功能介绍/R0-R15寄存器
1、ARM 寄存器组介绍ARM 处理器一般共有 37 个寄存器,其中包括:(1) 31 个通用寄存器,包括 PC(程序计数器)在内,都是 32 位的寄存器。(2) 6 个状态寄存器,都是 32 位的寄存器。ARM 处理器共有 7 种不同的处理器模式:用户模式(User),快速中断模式(FIQ),普通中断模式(IRQ),管理模式(Svc),数据访问中止模式(Abort),未定义指令中止模式(Und),系统模式(Sys),在每一种处理器模式中有一组相应的寄存器。在任意一种处理器模式下,可见的寄存器包
2020-06-05 17:09:52
27865
转载 semihost/ITM机制浅析以及使用JLINK通过ITM调试stm32单片机
使用ITM机制实现调试stm32单片机,实现printf与scanf。ITM简介ITM机制是一种调试机制,是新一代调试方式,在这之前,有一种比较出名的调试方式,称为半主机(semihosting)方式。在pc上编写过C语言的人都知道,printf可以向控制台输出,scanf可以从控制台获取输入,这里的printf/scanf都是标准库函数,利用操作系统的这些函数,我们可以很方便的调试程序。在嵌入式设备上(如stm32单片机平台上)开发工具(如MDK/IAR)也都提供了标准库函,自然也提供了prin
2020-06-04 11:32:10
875
原创 ARM不同位数系统int字节数区别
32位和64位系统区别及int字节数一)64位系统和32位有什么区别?1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。什么是64位处理器?之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(CPU)一次处理数据的能力也是2的倍数。8位处理器、16位处理器、32位处理器和64位处理器,其计数都是2的倍数
2020-05-28 21:01:29
6302
原创 程序的内存分配模式(堆栈以及静态存储区,文字常量区,代码区)
程序的内存分配模式一个由 C/C++编译的程序占用的内存分为以下几个部分:1、栈区( stack )—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区( heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由 OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)( static )—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在
2020-05-28 20:33:05
386
原创 C宏定义注意事项
1、带参数的宏与函数的优缺点2、宏定义一个函数时,需要注意每个参数都需要用括号括起来。如:#define Min(a,b) ((a)<=(b)?(a):(b))3、宏定义一年中的秒数#define SECONDE_OF_YEAR 606024365UL (√)#define SECONDE_OF_YEAR (606024365)UL (×)带括号编译器会报错...
2020-05-28 17:31:21
395
原创 ARM知识点
1、ARM有几种工作模式?答:有7个基本工作模式:用户模式(user)、系统模式(system)、数据访问中止模式(abort)、未定义指令中止模式(undef)、快速中断模式(FIQ)、外部中断模式(IRQ)、管理模式(SVC)、cortex-A系列特有:M(monitor):安全模式。记忆方法:USA UFI SM。2、ARM核有多少个寄存器?答:有37个32位长的寄存器。3、什么寄存器用于存储PC 和 LR寄存器?答:R15(PC)、R14(LR)。4、R13通常用过来存储什么?答:S
2020-05-24 16:32:09
2461
1
转载 100条经典C笔试题
题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C 语言面试宝典(林锐《高质量编程第三版》)。说明:1、部分C 语言面试题中可能会参杂部分和C++ 相关的知识,为了保持题目的灵活性故保留,但选题最终还是会以C 语言题目为主体;2、以上公司的面试题目已成为国内中小型企业公司出题模板;3、由于本人的能力有限加上时间仓促,本课件肯定存在不足之处,恳请各位同学批评指正。1、请填写bool , float, 指针变量 与“零值”比较的if语句。提示:这里“
2020-05-23 16:01:49
6643
转载 16道C面试试题
预处理器(Preprocessor)用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。3). 意识到这个表达式将使一个16位机的整型数溢出-
2020-05-23 15:41:45
416
转载 C语言面试大集合
1、static有什么用途(至少说明两种)?(1)限制变量的作用域(2)设置变量的存储域2、引用与指针有什么区别?(1)引用必须被初始化,指针不必。(2)不存在指向空值的引用,但是存在指向空值的指针。3、描述实时操作系统的基本特性:答:在特定时间内完成特定的任务,实时性与可靠性。4、全局变量和局部变量在内存中是否有区别?如果有,是什么区别?答:全局变量储存在静态数据库,局部变量在堆栈。5、什么是平衡二叉树?答:左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。左右子树深度相
2020-05-22 17:12:42
1950
转载 C语言中sizeof详解——面试C/C++
C面试sizeof详解1、定义sizeof是C语言的一种单目操作符,它并不是函数。sizeof操作符以字节形式给出了其操作数所占存储空间的大小。操作数可以是一个表达式或括在括号内的类型名。操作数所占存储空间的大小由操作数的类型决定。作用就是返回一个对象或者类型所占的内存字节数。2、语法sizeof有如下三种语法形式:(1) sizeof( object ); // sizeof( 对象 );(2) sizeof( type_name ); // sizeof( 类型 );(3) sizeof
2020-05-21 15:52:32
573
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人