自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (3)
  • 收藏
  • 关注

原创 符号编码与乱码问题

解释符号与编码,分析乱码问题,于是就能明明白白地处理大多数符号乱码问题了。

2022-05-21 12:36:52 1517 1

原创 word论文格式调整

本文以毕业论文为例,每个学校都有自己的格式要求,因此要找到对应的格式要求说明书,然后可以根据下文从零开始调整论文格式。亦可通过本文排查和调整论文格式是否正确。

2022-04-05 15:19:09 3869

原创 vscode 运行C++

本文先介绍了windows下 VSCODE运行C++前,搭建C++运行环境的必要步骤。后介绍了`tasks.json`、`launch.json`的作用,并给出了自己使用的配置方案。最后给出了常见问题的解决措施。

2021-12-19 19:43:03 27185 1

原创 vim学习导航

vim学习曲线陡峭,其实和开始学习键盘打字和双拼打字的过程差不多。以前练习打字是因为小学电脑课没游戏玩,只能玩金山打字的“警察抓小偷”;学习双拼主要动力是为了打字手手不酸,能尽量跟上思维速度。而学习VIM基本是为了linux下的服务器操作了,此时年纪不小了,对学习这种东西也不感兴趣了。最近整理了些学习资料,避免看书犯困。1、Win10安装说明2、学习规划(平均每天1到2小时的练度)1天篇 openvim:介绍最基本的15个功能,满足文件查看需求,但网站功能不太完善,自由测试度不高。7天篇 vimtu

2021-05-08 21:31:36 238

原创 VS下运行FreeRTOS例程

最近在官网上发现VS可以跑FreeRTOS例程了。挺好用的,避免了在板子上跑程序,提高了内核的学习效率。下载下载链接为:FreeRTOS Documentation点击Book companion source code即可自动下载。运行电脑上有VS即可使用。程序默认使用Vsisual Studio 2010,我使用的是2019版本,故需进行如下修改:1、 解压文件,并用记事本打开如下路径文件:source-code-for-book-examples\Win32-simulator-MSVC

2021-04-08 16:55:35 1400

原创 IMU的FSYNC脚的使用说明

目录简单说明用ICM20602手册来说明其他参考链接简单说明FSYNC为“”function synchronization”的意思,用于传感器的时间同步。不要想着这个管脚能对你的算法起到惊天动地的作用,它仅仅是为IMU数据打上了一个标记。用ICM20602手册来说明查找“FSYNC”关键字后,把所有关键信息都复制过来了。1- 下图表明,FSYNC是个输入脚,EIS为“Electronic image stabilization”的意思。[*]2-Synchronization digi

2021-03-07 20:51:18 3241

原创 NUCLEO-STM32H7A3ZI-Q使用说明

一、 使用说明1、测试前,需要下载最新的软件包,参见[1]2、测试例程于:STM32Cube_FW_H7_V1.8.0\Projects\NUCLEO-H7A3ZI-Q\Examples\GPIO\GPIO_IOToggle\MDK-ARM3、由于板子默认支持SMPS,不直接支持LDO,故使用STM32CubeMX生成的时钟初始化函数中,需要进行如下替换:HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);->HAL_PWREx_ConfigSupply(PW

2020-11-11 21:36:15 3193 1

原创 从词源和应用角度解释信号量与信号的区别

1- “同步”的一词多意1.1 两种制约关系[1]直接制约关系:流水线生产的各道工序、商品的生产和消费(同步问题 Synchronization)间接制约关系:两队进行篮球比赛(互斥问题Mutex)1.2 同步和异步同步指时间上存在严格的先后关系,即如:信号量发送后,若有某任务在等待接收信号量,则操作系统立即将其从阻塞消息队列转到静态就绪队列。而异步则是时间上不存在严格的现有关系。即如:信号发送后,接收信号的线程或进程不不会因此而改变状态。而是等到操作系统调度它时,才自己去判断一下是

2020-08-10 15:02:32 367

原创 TM32H7-SD卡DMA方式读写的可靠性修正

文魔附主要代码,完整测试程序到参考资料[7]下载。1- SD卡的初始化 回调函数初始化 IO和时钟初始化 使用400KHz单线进行初始化(用户无需自行设置) SDMMC单元上电并适当延时 通过命令通信,确定SD卡合适的初始化方式(需要通过命令知道使用的SD卡是什么类型,需要使用怎样的)。并设置块大小。 通过用户设置的初始化结构体SD_InitTypeDef对SD卡正常读写时的速率、时钟、线宽等进

2020-08-07 16:05:11 2655

原创 STM32-HAL库(固件库)升级

1- HAL库为什么要升级?1、使用官方提供的新功能。2、上个版本有BUG,下个版本BUG解决了的情况是可能的。不过,上个版本没BUG,下个版本有BUG的情况是有的(微小概率时间)。2- 查看HAL库版本打开“stm32h7xx.h”,CTRL+F搜索"version"。3- HAL库获取1、通过官网获取最新HAL库[1]。2、到ARM Keil官网下载最新的软件包。[2]Keil官网经常会卡着显示不了后续内容,这时可以用下tizi,后者找别人下好的。同时,包的版本数一般

2020-08-06 16:33:55 4403

原创 从C语言到C++:结构体/类的大小

本文尽量全面覆盖计算结构体/类的大小计算的所以知识点,故每一部分不会写的很详细,若有不准确的地方可以在评论去讨论。计算结构体大小时比较难且失误率比较高的面试题,实际变成中,个人感觉用处不大。字节对齐的好处是提供CPU读效率,防止一次读对应多次汇编指令。在编写有关数据帧时,可使用“#pragma pack(1)”来取消字节对齐。数据帧要提供读效率的话,应从数据帧协议出直接考虑,而不是让结构体自动帮我们添加,这样容易出错。目录1 C语言中结构体大小(字节对其原则)2 测试程序12.1 平

2020-07-24 22:13:39 367

原创 Matlab 类实例 队列的实现

虽然从政治正确的角度看,是不推荐使用Matlab了。无奈老代码已经在Matlab上存活太久了。本文是为了解决Matlab官方库中没有队列数据结构,故从社区中找了段代码。这也是自己首次在Matlab中使用面向对象的编程。语法说明见Matlab官方文档和本文最后的参考链接。程序classdef myQueue <handle properties (Access = public)%private buffer % a cell, to maintain the dat

2020-07-02 10:21:28 3295

原创 惯性器件分析—— ICM-42688-P

2019年年底新推出的一款很赞的IMU。陀螺特性加计特性相关链接官网DataSheet:https://invensense.tdk.com/download-pdf/icm-42688-p-datasheet/两家IMU对比:https://blog.csdn.net/dongqingyueyue/article/details/103731233电子说:http://www.elecfans.com/d/1223864.html...

2020-06-17 21:07:22 8341 8

原创 Word MathType :Σ的两种表示意义

求和:依次输入"\sum ^a_b c",将有如下显示符号变量:σ的大写表示,即依次输入“\Sigma ”即可获取Σ符号,并且不会自动生成上下标的形式。一般Σ用于表示协方差。...

2020-05-04 22:08:39 1754

原创 关系模式的基本概念

为了更好地存储数据,需要将现实世界的事物及其关系进行层层抽象,从而得到数据模型。使用关系数据模型的数据库系统是现在的主流数据库系统。数据模型是数据库的框架,该框架描述了数据及其联系的组织方式、表达方式和存取路径。相关术语如下:关系模型的概念域(domain):笛卡尔积(Cartesian Product):基数关系(Relation):R表示关系的名称,n...

2020-04-15 14:46:11 9485

原创 数据库系统的基本概念

数据库系统的基本概念虽然看似没用,但对于知道“自己是在什么体系下做什么事”的认识还是很有意义的。避免自己太过于陷入细节,陷入某一种数据库语言中。最近没用什么新货,就把比较拿出来分享下了。模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅涉及型的描述,而不涉及具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。个人的理解是...

2020-04-15 14:29:33 473

原创 C++ string与其他类型的转换

1\基本类型转为stringnt a = 100, b = 200;string A = to_string(a) + to_string(b);//1002002\string转cstring*  声明如下:const char * string::data(); //以字符数组的形式返回字符串内容但不主动添加'\0'const char * string::c_str(); ...

2020-03-25 22:17:01 762

原创 C++ sstream的使用

C++ sstream的使用基本操作实用函数参考链接  sstream库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。[1]基本操作1、操作前后: 操作前将string压入sstream,操作后压出stringstream stream; //声明一个stringstream变量strin...

2020-03-25 22:04:08 2396

原创 Linux下安装印象笔记

想直接使用有道笔记和OneNote失败了,于是转战印象笔记。其中,OneNote主要时因为OneDriver同步太慢的问题放弃了。方法1:Chrome快捷方式法这时知乎问题【https://www.zhihu.com/question/39195925】下的林乐杨的回答,但自己时说不出哪里不对劲!方法2:基于NixNote2普朗可常数已经在【https://blog.csdn....

2020-03-15 02:53:01 4297

原创 单片机该不该用C++?

目前写个不算小的工程,用到了七八种传感器,还跑复杂的算法,发现驱动用C写,后期扩展起来挺费劲的。但目前主流单片机都是用C语言写,于是有了这个问题——单片机该不该用C++写。我想,Quora上大佬的回答Why can't C++ replace C in embedded systems? 应该还是可靠的吧。个人的总结如下,待时间去检验它的正确性吧:CPU速率大于100MHz不用考虑C+...

2020-02-29 20:32:52 6857 2

原创 Matlab电路仿真

电路仿真的工具有很多,比如专业点的Pspice,本科时学习时经常使用。但问题是,即使电信专业以后真的从事硬件设计的也寥寥无几。而为了进行简单的仿真还要多装个软件,我能接收,我的老电脑也接收不了。于是就有了本文了。目录仿真过程入门说明例子1、电阻电路2、受控源电路3、动态电路4、理想运放电路5、离散事件电路6、自己设计组件(Module)参考资料仿真过...

2020-02-24 15:26:35 24722

原创 Simulink中的Simscape

Simscape是在Simulink环境下创建物理系统模型的工具和语言。[8]它可以通过基于Matlab语法的Simscape语法来制作自己的物理仿真系统。如果使用Simscape中现有的基础库(Foundation Library),这些库对用户也不是黑盒子,可以通过看源码来指导模块性能。本文是指对Simscape做了简单的介绍,了解的自己使用Electrical域够用的程度而已。若感兴...

2020-02-24 14:18:37 9841

原创 Cortex-M系列:错误异常

w总线错误维基的解释为:In computing, a bus error is a fault raised by hardware, notifying an operating system (OS) that a process is trying to access memory that the CPU cannot physically address: an ...

2020-02-21 11:54:05 4401

原创 STM32H743 Flash

Flash用来存什么?最基本的理解:Flash用来存代码,RAM用来存数据(如堆,栈,全局变量,静态变量)。补充说明:由于Flash的非易失性,以及内存接口单元提供的电路逻辑,Flash可以用来存储敏感的信息(sensitive imformation)。稳定机制:ECC错误纠正,内置看门狗IWDG 保密/安全机制:专有代码读出保护机制,安全访问模式 提高性能:a、...

2020-02-20 21:50:20 6237

原创 STM32H743:程序的启动

从BOOT说起BOOT在词典的解释为:boot:(亦作 boot-up)[usu. as modifier] the process of starting a computer and putting it into a state of readiness for operation (电脑的)启动既然是引申义,写者想它和靴子的联系,于是想到如下情景:当从屋子里要出门时,需要穿...

2020-02-19 20:53:51 5221

原创 烙铁购买及使用须知

假期在家,没想到垃圾焊接工具竟然可以这么影响使用,固写本文。目录工具使用说明烙铁(solder iron)焊锡(solder)清洁工具助焊剂(flux)氧化后修复(reactivating your tips)方法一:酒精方法二:砂纸方法三参考资料工具使用说明更全的电子工程师使用的工具说明见[7][8]烙铁(solder iron)烙铁临...

2020-02-16 17:48:51 2201

原创 区分焊锡膏与助焊剂

维基说明产品上的错误的中文翻译甚至是错误英文存在已久,不得不来“正个名”。Solder paste (or solder cream) is a material used in the manufacture of printed circuit boards to connect surface mount components to pads on the board. It is...

2020-02-14 16:49:27 6344

原创 Keil调试笔记:断点命令

如何你对单纯的通过硬件断点、在内存窗口和观察窗口下调试代码不满意的话,可以尝试一下中断命令,你可以设置进入中断的“条件”。这个“条件”可以是执行多少次后才出发中断,读写某个内存地址或地址范围时触发中断。值得一提的是,3.2节测试1和测试2显示出了Cortex-M7的六级流水微架构的特性。目录1 调试命令窗口2 BD/BL/BE/BK3 BreakSet3.1 执行断点3...

2020-02-08 22:37:29 6195

翻译 Keil调试笔记:调试表达式(翻译)

翻译于:http://www.keil.com/support/man/docs/uv4/uv4_db_expressions.htmHome→µVision User's Guide→Expressions目录1 调试表达式2 常量2.1二进制、十进制、十六进制和八进制常量2.2 浮点常量2.3 字符常量2.4 字符串常量2.5 使用内存属性说明符3 系...

2020-02-08 22:23:21 2728

原创 Cortex-M系列:在C文件中插入汇编

本文旨在阐述如何在Cortex-M系列CPU的C文件中插入汇编程序。通过观察C语言生成的汇编程序,在必要时刻知道如何写更为复杂的汇编代码。通过学习ARM工具链生成的汇编程序,可实现较高效的汇编指令学习,更重要的在于知道程序有多大的优化空间。特别地,理解数组处理方式,能更深刻地理解数组越界到底会有怎样的影响;理解文本池访问的方式,能更直观地知道常量以及const关键字在汇编中是如何体现的。本文承...

2020-02-05 01:17:48 1243 2

原创 Cortex-M系列:ARM架构与汇编指令集

本章是花费大好多功夫整理总结的,某种意义上算原创。文中大量内容是引用的,请见谅。文中比的比较仅到Armv8-M架构的Cortex-M33,没涉及后续新版本(也没法预计到)。目录1 ARM处理器分类2 基于Thumb-2技术的Thumb®指令集3 参考资料1 ARM处理器分类ARM的老产品树:1、第一级——架构:ARMv4~ARMv62、第二级——产品系列:如AR...

2020-02-05 00:29:35 3693

原创 Keil调试笔记:数组越界

概要:一个例子,两个思路,一些思考。问题现象struct bmm150_dev { /*! Chip Id */ uint8_t chip_id; /*! Device Id */ uint8_t dev_id; /*! SPI/I2C Interface */ enum bmm150_intf intf; /*! Bus read function pointer */...

2020-02-01 21:43:33 3659

原创 关于硬盘数据恢复的一些思考

我平时会将数据保存在两台电脑和两个移动硬盘上,但由于假期回家,IDE软件用起来容易崩,于是决定重装下系统,但发现USB启动盘找不到了,便将移动硬盘隔分了小的个新逻辑卷,想利用[1]的方法制作USB启动盘,但是……制作好后,微软把我整个硬盘都格式化了,并生成了一个名为“ESD-USB”的逻辑卷,情况和[2]中描述的类似。于是只能硬着头皮把系统重装了,然后在利用数据找回软件找回部分数据,其他只能等回学...

2020-01-30 11:58:20 693 1

原创 Cortex-M系列:中断的内在机理

在博客[2]Cortex-M系列: 软件中断和硬件中断中,主要写的是要怎么配置中断并产生中断,而本篇主要将CPU是如何识别我们的代码并运行中断,同时不破坏程序的上下文的。文中用一个例子解释了惰性压栈的原理。在发生中断嵌套时,Cortex-M处理器将使用出栈抢占、末端连锁、延迟到达等机制来优化响应速度,同时降低了功耗[6]。理解这部分原理,一方面有利于处理在中断中出现的BUG,另一方面是有利于深入理...

2020-01-21 13:54:48 3314

原创 Cortex-M系列: 软件中断和硬件中断

软件中断请求在逻辑上比较简单,但相关程序的解释比较少,本文将在第一部分进行讲解。硬件中断逻辑比较复杂,但网上的例程比较多。虽然我们知道怎么配置单片机的中断,但估计很多人对它的细节还不是很理解,我将在后半部分讲解,但不会涉及寄存器的操作,有关中断时的寄存器操作机理请见文献[2],我也将在后续博客中进行实例分析。文中的例子是在STM32H743单片机下进行的。目录1 软件中断1.1 目...

2020-01-19 23:02:06 3330

原创 Cortex-M系列:非中断、特权模式下的汇编语言

通过Keil5,在stm32H743非中断模式下,使用主堆栈指针下的汇编语句查看。理解这个汇编逻辑后,将有利于更自由的进行程序调试,查找BUG。文章涉及的汇编指令可以在工程中左侧:book→Device Data Books→Cortex-M7 Generic User Guide中查找。目录1 查看堆栈通过调试模式下的Memory窗口,可以看到:1、单片机是小端模式,...

2020-01-16 14:15:14 636

原创 FreeRTOS中,中断优先级设置方法

摘要FreeRTOS为了保证实时性要求严格的中断能及时响应,在屏蔽任务切换时,只屏蔽了优先级比较低的部分中断。而可被屏蔽的这些中断可以保证内核的临界区不被破坏,因此这些中断也能使用部分内核API。在这样的中断发送信号量,可以让有时序性要求较高的任务或信号量来自于外设的任务及时获取信号量并运行。本文将介绍CortxM7的相关中断寄存器,并说明如何配置FreeRTOS中与中断有关的宏。最后说明...

2020-01-15 13:52:06 2624

原创 一种贴片晶振异常情况,及晶振频率评估方法

在之前写的文章[1] https://blog.csdn.net/NoDistanceY/article/details/103858833中,我提及了我将NUCLEO-H743ZI2评估板进行修改,将通信芯片上25MHz的晶振换到MCU的HLE的晶振接口上。发现的现象是晶振频率变成了8M。但这里要说的是,如果出现这种现象,请直接换晶振,否则将画大量时间在时间异常的处理上。如果知道出现这种异...

2020-01-13 22:18:40 851

翻译 TCP/IP协议概念通俗讲解, 端口号与套接字的区别

网上对TCPIP协议、以及端口号、套接字以及绑定的概念已经写的很多了。但不是所有的都适合新手,最近下进行FreeRTOS+TCP开发时,发现官方的解释特别通俗易懂,因此对我对简介部分进行了翻译,方便懒得看英文的人也能瞧瞧,内容来源于:https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/index.html。翻译里设计的部分程序中的宏定义...

2020-01-12 17:57:59 6375

原创 无障碍键盘输入-搜狗输入法写数学公式

Unicode码+快捷键在word中,输入四个16进制数,即Unicode码,然后选中这四个数,最后按住键盘的Alt+X键。Unicode码再按Alt+X,码由变回了四个16进制数。如:2610□ 2610√ 2611☑ 2612☒ 2613☓①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳其他Unicode的查找请到Unicode百科: https://unicode-table.com...

2020-01-08 22:28:13 4608

NoDistanceY-SD卡测试.zip

对正点原子的SD卡读写程序进行修改,解决其中的BUG,并提升了其可靠性。程序支持轮询、中断和DMA当时读写。 说明请见《TM32H7-SD卡DMA方式读写的可靠性修正》https://blog.csdn.net/NoDistanceY/article/details/107863786。

2020-08-07

simscape_Electrical.zip

在Matlab2012及之后的版本下,通过Simulink平台下的Simscape进行电路仿真的例子

2020-02-24

NUCLEO-STM32H743.zip

NUCLEO-H743ZI 和 NUCLEO-H743ZI2 的使用手册及相应的原理图和PCB。这两款评估板差别较大,可以查看我的博客,确定想选哪款,并且为了测量功耗进行评估板的调整。

2020-01-06

空空如也

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

TA关注的人

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