- 博客(45)
- 资源 (1)
- 收藏
- 关注
原创 Dialog的IDE搭建systermView的方法步骤(DA1469X)
SystemView 是一个可以在线调试嵌入式系统的工具,它可以分析有哪些中断、任务执行了,以及这些中断、任务执行的先后关系。还可以查看一些内核对象持有和释放的时间点,比如信号量、互斥量、事件、消息队列等。这在开发和处理具有多个线程和事件的复杂系统时尤其有效。方便我们可以通过这个软件实时监控我们实时系统的任务切换及调度情况,并且这个软件支持多种实时系统,包括RT-thread FreeRTOS 等实时系统。由于Dialog 的相关说明手册比较少,因此整理一份关于DA1469X系列的关于sysview
2022-11-30 11:36:06 667 1
原创 STM32使用PA8测试系统时钟(LSE)
STM32的PA.8引脚具有复用功能——时钟输出(MCO), 该功能能将STM32内部的时钟通过PA.8输出.1.操作步骤设置PA.8为复用AF模式 //GPIO PA8设置 GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_8; GPIO_Ini
2022-03-02 09:52:19 1938 1
原创 嵌入式常用的宏定义
常用的宏定义#define BIT_JUDGE(Val,Bit) ((Val>>Bit)&0x01) /* 位判断 */#define BIT_SET(Val,Bit) (Val |= (1<<Bit)) /* 位置1 */#define BIT_CLEAR(Val,Bit) (Val &= ~(1<<Bit)) /* 位置0 */#define BIT_INVERT(Val,Bi
2021-09-13 16:26:03 553
原创 2021-09-03
STM32L4系列使用PA8映射内部时钟目的引脚及时钟定义测试函数总结目的为了查看内部时钟在运行中,频率是否会有偏差引脚及时钟定义void MCO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_8; GPIO_InitStru
2021-09-03 19:27:06 145
原创 常见的位操作进行封装
#define BIT_JUDGE(Val,Bit) ((Val>>Bit)&0x01) /* 位判断 /#define BIT_SET(Val,Bit) (Val |= (1<<Bit)) / 位置1 /#define BIT_CLEAR(Val,Bit) (Val &= ~(1<<Bit)) / 位置0 /#define BIT_INVERT(Val,Bit) (Val
2020-10-19 14:47:41 269
原创 串口波特率的理解
一、基础知识1.1 bit与bytebit就是位,也叫比特位,是计算机中最小的单位;byte是字节,也就是B;1字节(byte)=8位(bit)既位只有两种形式0和1,只能表示2种状态,而字节是有8个位组成的。可以表示256个状态。1byte = 8 bit, 1KB= 1024 byte, 1MB = 1024 KB, 1G = 1024 MB, 1T = 1024 G。1.2 波特率概念1)比特率:9600bps ,其表示每秒传输9600bit,也就是相当于每一秒中分成了9600等
2020-08-14 14:17:32 18429
原创 Flash Download failed - “Cortex-M4“的解决方案
Flash Download failed - "Cortex-M4"的解决方案0.概述在使用keil5时,下载程序时,会出现:Flash Download failed - “Cortex-M4”,主要有两种方法解决1 常规方法大家可以参考这个连接第二种方法在自己电脑装keil5软件的盘中找到STM32L4xx_128.FLM我的电脑是在D:\Keil_v5\ARM\PACK\Keil\STM32L4xx_DFP\1.4.0\CMSIS\Flash我们可以找一个可以下载的同芯片型号的文件f
2020-07-31 18:46:14 2195
原创 feof的原理和用法
一、feof的定义feof()是检测流上的文件结束符的函数,如果文件结束,则返回非0值,否则返回0;原型:int feof ( FILE * stream );一般在操作中,经常用feof()判断文件是否结束。检查是否设置了与流关联的文件结束指示符,如果返回,则返回一个不同于零的值。该指示符通常由尝试在文件末尾读取的流上的先前操作设置。注意,流的内部位置指示符可能指向下一个操作的文件结尾,但是,直到操作试图在该点读取之前,文件结尾指示符可能才被设置。可以通过调用clearerr,倒带,fseek,fs
2020-06-02 14:43:11 5227
原创 JY61P姿态传感器的调试
1 熟悉JY-61P 模块的基本参数1、电压: 3.3V~5V2、电流: <25mA3、体积: 15.24mm X 15.24mm X 2mm4、焊盘间距:上下 100mil(2.54mm),左右 600mil(15.24mm)5、测量维度:加速度: 3 维,角速度: 3 维, 角度: 3 维, 气压:1 维(JY-901B), GPS:3 维(接 GPS 模块)6、量程:加速...
2020-01-02 22:34:48 8146 3
原创 步进电机丢步与闭环控制
1.步进电机失步概念步进电动机正常工作时,每接收一个控制脉冲就移动一个步距角,即前进一步。若连续地输入控制脉冲,电动机就相应地连续转动。步进电动机失步包括丢步和越步。丢步时,转子前进的步数小于脉冲数;越步时,转子前进的步数多于脉冲数。一次丢步和越步的步距数等于运行拍数的整数倍。丢步严重时,将使转子停留在一个位置上或围绕一个位置振动,越步严重时,机床将发生过冲。2.丢步原因及策略(1)转子的...
2019-11-19 22:00:44 14416 2
原创 步进电机的相关知识
概述:在实际做实验种,我们使用的步进电机相关参数在下:所以我们要熟悉一些参数及概念。1.步进频率:步进频率是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。我们可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。2.步距角输...
2019-11-04 21:14:17 6206
原创 P3022-V1-CW360的精度调试(原理是基于AD采样)
一、模块了解我们在使用模块时,要进行所用的传感器的有一定的了解,霍尔角度传感器是一种微型360度传感器,其基于霍尔效应原理工作。它与DFRobot重力传感器接口兼容,并使用5V DC电源。模拟输出也是0〜5V,因此可以直接与Arduino一起使用。霍尔角度传感器通过将其角度信息转换为电信号来工作。当物体的旋转角度传递到旋转轴传感器时,它会输出与旋转角度成比例的电信号。首先要特性了解:其次...
2019-10-22 19:17:36 1641
原创 探究激光雷达测距模块及数据分析+AD模块
1.产品介绍SKP 系列激光测距雷达是一种能够测量物体到测距雷达前端距离的设备, 可用于工业测量、 机器人避障、 汽车防撞等场景。 SKP40 拥有长达 40 米的量程, 并且在全距离内都拥有厘米级精度, 全新的 DeTOF 技术让SKP40 在室外强光下稳定工作, 这些特性进一步提升了 SKP40 在各种环境下的适应能力。(上海申稷光电的激光雷达还蛮好的,推荐使用,仅供参考,本次主要以记录使用...
2019-10-15 21:07:39 4080 3
原创 自制激光雷达设计
1、概述由于课题要求,需要设计一款适合于果园应用的激光雷达。因此采用单线扫描激光雷达和角度传感器来设计能采集二维数据的激光雷达。关于数据的转化的理论,我们可以查阅相关文献。在此,只讲基本的构造和程序。2、整体外形设计此图为设计图:硬件包括单点激光模块,无线电源模块,HC-05模块,降压模块,步进电机及驱动器,控制器arduino Mage2560(可以换其他控制器),usb数据传出模块。...
2019-10-07 20:04:38 3783 3
原创 常见的嵌入式笔试/面试(三)
1.下列函数中,能声明为虚函数的是(BCD)A.构造函数B.公有成员函数C.析构函数D.私有成员函数2.某一系统功能,需要一次性加载N(N在100左右)个随机数,后续只对该集合进行遍历.最宜采用哪种结构存放?(C)A.Hash表B.二叉树C.链表D.图解析:随机数,未经排序,二叉树不适合;需要遍历,hash表不适合;不强调数据之间的关系,图不适合;随机数数据类型不一致,数组不适...
2019-10-07 16:30:18 729
原创 W5500模块、 Ethernet ShieldW5100模块和P3022-V1-CW360角度传感器在单片机arduino调试
我们在使用W5500模块时,首先要了解这个模块的基本特性。该模块采用WIZNET公司最新型号W5500以太网芯片,模块通讯稳定、可靠。可以根据用户的需求个性化定制。提供资料全,全套开发文件。其产品特性:集成全硬件TCP/IP协议栈,无需编写以太网底层驱动即可实现TCP/IP协议;支持TCP、UDP、IPv4、ICMP、ARP、IGMP以及PPPOE协议;支持10/100Mbps传输速...
2019-09-24 20:59:52 1541
原创 (C语言 笔试/面试 )判断字符串中的重复字符串的个数
题目:一个字符串:11abcd123abcd87abcdyy 求abcd字符串出现的个数?第一版代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>//strstr -do-while模型void main(){ //初始...
2019-09-02 21:22:21 4032
转载 全球15个顶级技术类博客
在互联网世界当中,博客网站的种类是多种多样的。它们中的一些旨在教导、帮助人们交流协作、激发灵感,并拓展我们的思维空间。而另一些博客则侧重于激发我们的情感,让我们感到愤怒,或是让我们开怀大笑。《电脑世界(Computerworld)》网站的编辑们这些优秀博客网站搜集整理在了一起,为我们提供了一份最受他们所钟爱的博客网站的列表。最后,我们根据这些博客自身的信息广度、新闻价值、网站设计、更新频率以及娱乐...
2019-08-28 11:57:32 441
原创 嵌入式笔试题目(二)
此文章是收集和整理关于嵌入式笔试的题目,便于自己及他人复习用的,取之于网络,用于网络。1、 写出简单的hello world字符设备驱动?#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/moduleparam.h>...
2019-08-27 22:05:57 576
原创 嵌入式研发笔试题(一)
慢慢积累,量到了才会质变:1.若某线性表常用的操作是存取任一指定序号的元素和在后进行插入和删除运算,则利用()存储方式节省时间(A)A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表解析:采用顺序存储方式在已知元素序号的情况下可以直接计算出地址,当指定在线性表的最后进行插入和删除运算时,也不需要进行大量元素的移动扩展:以下与数据的存储结构有关的术语是(ABC)[多选]A.循...
2019-08-27 20:29:32 6212 3
原创 (C语言常笔试题)带参数宏与带参数函数的区别有哪些:
0.概述C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实际参数”,这点和函数有些类似。 对带参数的宏,在展开过程中不仅要进行字符串替换,还要用实参去替换形参。带参宏定义的一般形式为:#define 宏名(形参列表) 字符串带参宏调用的一般形式为:宏名(实参列表);1。带参数的宏与带参数函数的优缺点:函数调用时,先求出实参表达式的值,然后带入形参。而...
2019-08-21 21:47:19 1608
原创 (面试/笔试常见题)Heap与stack的差别
零、预备知识1、内存分配策略<font color=#0099ff>按照编译原理的观点,程序运行时的内存分配有三种策略,分别是**静态的,栈式的,和堆式的**。 1)静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求, 因而在编译时就可以给他们分配固定的内存空间. 这种分配策略要求程序代码中不允许有可变数据结构 (比如可变数组)的存在, 也不允许有嵌套或...
2019-08-20 17:38:29 223
原创 (常笔试/面试题)const的用途有哪些?
0.const关键字概述(1)const是constant的简写,只要一个变量前面用const来修饰,就意味着该变量里的数据可以被访问,不能被修改。也就是说const意味着“只读”readonly。不能说const修饰的都是常量。(2)修饰规则:const离谁近,谁就不能被修改;(3)本质:const在谁后面谁就不可以修改,const在最前面则将其后移一位,二者等效。(4)注意:const...
2019-08-20 16:43:55 439
原创 Indexer接口步进电机驱动器(七特:7TPSM220)学习了解
我们首先看一下这个驱动器的实际图:1.产品的特点:微型设计,安装便利,可与 42 步进电机一体化散热铸铝封闭型外壳停止运行时自动半流,无锁相噪声并行接口高速光电隔离,兼容 3.3-5V 和 12-24V 逻辑电平电流 0-2A 连续可调1/2/4/8/16/32 细分可选2.产品的参数3.电气接口4.典型接线兼容 3.3V-5V 和 12V-24V 用户级,脱机信号...
2019-08-19 16:05:12 1622 2
原创 building 'pycocotools._mask' extension error: Unable to find vcvarsall.bat(图文讲解)
构建coco的相关环境时,在调用vcvarsall.bat,出现如下的错误:1.因为我们在安装VS2015时,选择默认安装方式,没有安装到vc++的相关工具,我们需要打开vs2015,新建项目选择vc++项目:2.在安装的过程可能等较长的时间:3.安装结束时,我们重启vs20015:4.我们找到vcvarsall.bat所在的目录:5.我们将目录:E:\VS2015\VC(不同...
2019-08-18 15:00:22 5744 12
原创 (常考)交换两个变量的值,而不使用第三变量的方法总结
我们在刚学C语言时,做两个变量的交换时,常常借助第三变量。其原始代码如下:0)原始方法int a ,b ,t;a =6 ;b=9 ;t = a ;a = b ;b = t ;这个算法最大的缺点就是借用了临时变量。那么,我们看看不借助临时变量的交换算法有哪些:1)算术运算法int a, b ;a = 6 ;b = 9 ;a = a + b ; //a = 15b = ...
2019-08-17 15:08:50 464
原创 嵌入式笔试关于指针的问题
指针概述:1.指针是变量,但是指针的字节长度是固定的。因为指针保存的是地址,由操作系统的位数决定,32位机的字节是4,64位机的字节是8。2.指针指向的内存空间和对应的内存空间这里定义了一个整型指针p保存num的地址(0x1000),num的地址就是首字节的地址,而指针p本身的地址为0x2000。下面我们来引入指针的定义:num对应的内存空间为5,指针p对应的内存空间为0x1000,指针...
2019-08-16 21:58:23 353
转载 图论学习-图的遍历(三)
图建构好后,针对具体的问题,我们常常需要通盘的读取图中的信息,包括顶点(vertex)和边(edge),以及它们之间的关系。这种读取图中所有信息的方法就是图的遍历(traversal),也称为搜索(search),就是从图中某个顶点出发,沿着一些边访问图中所有的顶点,且使每个顶点仅被访问一次。遍历是很多图论算法的基础。遍历需要决定从哪里开始读,依照什么顺序读,要读到哪里为止。如果遍历方法与需解...
2019-08-15 17:24:19 264
原创 调用函数时,内存分配、栈空间与静态变量的性质
1.在进行C/C++编程时,需要程序员对内存的了解比较精准。经常需要操作的内存可分为以下几个类别:1)栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2)堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3)全局区(静态区)(stat...
2019-08-15 13:36:44 813
原创 嵌入式工程师笔试题目整理-for CVTE
1.说出你知道的文件系统,至少3种。Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等详情参考此blog2.可重入函数的条件有哪些?1)不要使用全局变量。2)在和硬件发生交互的时候,关闭硬件中断,完成交互记得打开中断,在有些系列上,这叫做“进入/ 退出核心”。3)不能调用其它任何不可重入的函数。4)谨慎使用堆栈。详...
2019-08-13 22:11:10 2812
转载 图论学习-树概念(二)
建立了图(graph)的认识,“树”就好理解了。“树”是一种很特别的图(graph)。用图来定义“树”:任意2点之间都连通,并且没有“环”的图。下面的图就是一颗树,因此,树是图的特例。当然,由于树是一种特别有用的数据结构,因此,它有着一些自身的特点和概念:一、节点(node)就是图(graph)的顶点(vertex)。如上图中的顶点:0,1,2,3,4,5,6,7,8。二、枝(branc...
2019-08-13 17:34:46 1967
转载 图论概念(一)
图(graph)是数据结构和算法学中最强大的框架之一(或许没有之一)。图几乎可以用来表现所有类型的结构或系统,从交通网络到通信网络,从下棋游戏到最优流程,从任务分配到人际交互网络,图都有广阔的用武之地。而要进入图论的世界,清晰、准确的基本概念是必须的前提和基础。下面对其最核心和最重要的概念作出说明。关于图论的概念异乎寻常的多,先掌握下面最核心最重要的,足够开展一些工作了,其它的再到实践中不断去理...
2019-08-13 17:19:56 189
原创 定义一个宏比较大小,方法总结
自己的C语言基础不是太扎实,所以写博客,积累一下经验。俞敏洪都说了,如果每天背十个单词,一年就是3560个单词呢,你也是大师级人物了,fighting!所以坚持吧。方法一:(最简单)#define MAX(a,b) (((a)-(b)<=0)?(b):(a))#define MIN(a,b) (((a)-(b)<=0)?(a):(b))方法二:(容易想到)#define ...
2019-08-12 14:11:11 5787 1
原创 不同编译器下的char、char*、int、shot int 、float、double、long、long的字节大小
int和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):1 sizeof(short int)<=sizeof(int)2 sizeof(int)<=sizeof(long int)3 short int至少应为16位(2字节)4 long int至少应为32位。unsigne...
2019-08-11 21:00:17 835
原创 linux目录结构
0.概述整理自《鸟哥的私房菜》和网络 对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的相关知识。1.Linux文件结构当在使用Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的目录...
2019-08-11 20:25:40 208
原创 控制器与对靶装置通信协议
一、 控制示意图控制器发送自定义的协议给对靶系统,对靶系统也返回对应的帧。1.1 控制器—>对靶装置这是控制器发送到对靶装置的协议格式:1.2 对靶装置—>控制器这是对靶装置发给控制器的协议格式:二、命令格式具体参数意义2.1登入命令2.1.1 控制器作为客户端发送命令完整的数据包(16进制):02734C442003代码如下:byte[] login =...
2019-08-06 13:10:10 250
原创 数据处理pandas工具学习(1)
0.概述一些个人的见解,所谓学习就是指知识的学习,所以我们要掌握学习的对象和方法。首先就要了解知识是什么,要掌握一些关于关于“知识”的知识。知识主要是指主体对客体的规定和属性的认识表述。客体的规定和属性,表现为主体所表述的事物的**“图像”和规律**。所以我们要对所学的工具pandas的规定和属性进行一定的了解学习。这样我们才能更好的使用它们。1.Pandas库的学习如果我们想更好的了解pa...
2019-07-31 22:22:46 261
原创 使用python线程来读URG激光雷达和旋转编码器的问题
一、首先对python的学习Python中使用线程有两种方式:函数或者用类来包装线程对象。1.1函数式的线程调用函数式:调用thread模块中的start_new_thread()函数来产生新线程。代码如下:import timeimport threaddef timer(no, interval): cnt = 0 while cnt < 10: print('T...
2019-07-30 12:05:38 420
原创 最全莫烦pytorch学习笔记基础部分
一、作者简介作者:周沫凡 Mofan Zhou , 所以 “莫烦” 这个名字也是取了个谐音而已. 就用名字鼓励大家. 即使遇到再多再大的困难, 我们还是要抱着一种 莫烦 的态度, 努力到底.原本, 他只是一名普普通通的 PhD 学生, 因为专业不对口, 之前学的东西在 PhD 的时候统统用不上, 然后我就开始了我漫长的自学道路. 你在这个网页看到的所有内容, 都是我在网上探索, 自学而来的. ...
2019-07-23 17:24:12 2070
原创 使用python读取arduino串口发送的旋转编码器数据,转化为数组,并预处理激光雷达的数据。(调试2)
概述使用python读取arduino串口发送的旋转编码器数据,去除换行和回车符号“\n\t",并解析bytes,转化为数组。激光雷达的数据是字典类型,我们还需要将其转换成DataFrame格式的数据,运用pandas库处理数据。1.1 串口读取旋转编码数据的格式1. 2.原来代码如下# E:\Anaconda3\python.exe# -*- coding: utf-8 -*-im...
2019-06-25 11:54:10 1475
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人