自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

转载 CAN 2.0A,CAN 2.0B,Active CAN和Passive CAN之间的区别是什么?

解答:CAN针对ID参数规定了两种不同的格式。其中标准消息格式用了11位的ID,而扩展消息格式用了29位的ID。CAN 2.0A-只规定了标准消息格式(扩展消息会被认为是错误)CAN 2.0B active-能处理标准和扩展消息格式CAN 2.0B passive-处理标准消息,忽略扩展消息National Instruments的CAN硬件是和2.0B active兼容的,所以它同时...

2018-07-16 18:48:50 7532 1

转载 STM32的CAN波特率计算

波特率=APB1Clock/(1+CAN_BS1+CAN_BS2)/CAN_Prescaler(PS:CAN_SJW表示重新同步跳跃宽度,不参与波特率的计算,其值可以编程为1到4个时间单元,表示该总线对波特率范围的容差度。公式中1表示同步段固定为一个单位时间。)eg:APB1Clock=36Mhz, CAN_BS1=3, CAN_BS2=5, CAN_Prescaler=32,则36000k/9/...

2018-07-11 13:55:01 1217

转载 再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结

1. 前言bxCAN是STM32系列最稳定的IP核之一,无论有哪个新型号出来,这个IP核基本未变,可见这个IP核的设计是相当成熟的。本文所讲述的内容属于这个IP核的一部分,掌握了本文所讲内容,就可以很方便地适用于所有STM32系列中包含bxCAN外设的型号。有关bxCAN的过滤器部分的内容在参考手册中往往看得“不甚明白“,本文就过滤器的4种工作模式进行详细讲解并使用具体的代码进行演示,这些代码都进...

2018-07-11 08:17:47 474

原创 CANOPEN 对象字典格式说明

字典通讯对象子协议区(CommunicaTIon profile area)常见以下内容:[1000]ParameterName=Device TypeObjectType=0x07DataType=0x0007AccessType=constDefaultValue=0x00010196PDOMapping=0[1001]ParameterName=ErrorRegisterObjectType...

2018-06-30 10:50:56 5036

转载 阻抗匹配

一、输入阻抗输入阻抗是指一个电路输入端的等效阻抗。在输入端上加上一个电压源U,测量输入端的电流I,则输入阻抗Rin就是U/I。你可以把输入端想象成一个电阻的两端,这个电阻的阻值,就是输入阻抗。输入阻抗跟一个普通的电抗元件没什么两样,它反映了对电流阻碍作用的大小。对于电压驱动的电路,输入阻抗越大,则对电压源的负载就越轻,因而就越容易驱动,也不会对信号源有影响;而对于电流驱

2017-12-21 10:43:09 529

原创 Altium Designer PCB中出现不能批量改字体宽度现象

PCB中可以通过改字体宽高,从而改变丝印字体大小,但是这是有前提的:字体类型。       因此有时在PCB布线时想通过批量改字体大小却不行的诡异现象,可以查下原件封装中的字体是不是被选中了,详细原因AD使用帮助上应该有解释。以下是一个举例说明:

2017-11-03 14:49:27 8701 3

转载 RS-485自收发电路的参考设计

RS-485标准在工业控制、电力通讯、智能仪表等领域中使用广泛。但是,在工业控制等现场环境中,情况复杂,常会有电气噪声干扰传输线路;在多系统互联时,不同系统的地之间会存在电位差,形成接地环路,会干扰整个系统,严重时会造成系统的灾难性损毁;还可能存在损坏设备或危害人员的潜在电流浪涌等高电压或大电流。因此,对RS-485接口的隔离是非常有必要的。  ADM2483是一款集成了信号通道隔离和RS

2017-10-30 15:46:32 5081

转载 ADI读书活动第四十二期:AD 623使用心得讨论

【转自:http://analog.eefocus.com/module/forum/thread-582273-1-1.html】在实际项目应用中,需要一款仪表放大器来对压力传感器的毫伏级信号进行放大,经过综合比较分析最终确认使用ADI公司生产的AD623。一、AD623简介1、基本特性:AD623是一个集成单电源仪表放大器,它能在单电源(+3V到+12V)下提供满电

2017-09-14 16:37:54 1236 1

转载 什么是ARM中的SP(堆栈)和LR?

问题描述我一遍又一遍地阅读定义,我还没有得到什么是ARM中的SP和LR?我明白PC(它显示下一个指令的地址),SP和LR可能是相似的,但我只是不明白它是什么。你可以帮我吗?编辑:如果你可以用例子说明一下,那会很棒。编辑:终于弄清楚LR是什么,还没有得到什么SP。最佳解决方案LR是用于保存函数调用的返回地址的link register。SP是堆

2017-09-07 14:02:40 18000 1

转载 刚测试了一下finsh命令:list_thread(),怎么输出的是Null node,没有显示出手册里面提到的系统线程当前状态

如题原因可能所在:使用list() 看看有没有这条命令.如果没有,在链接选项里面加入 " --keep __fsym_* --keep __vsym_* "

2017-09-07 13:48:03 1692

原创 rt-thread创建动态线程失败

采用rt_thread_create在动态堆内存中创建一个线程,此动态线程创建任务是初始化两个静态线程,创建失败,而用直接初始化静态线程却可以,过程如下:一个动态线程初始化两个静态线程——不行int rt_application_init(void){ rt_thread_t init_thread= RT_NULL;#if (RT_THREAD_PRIORITY_MAX ==

2017-09-07 13:33:51 5876 2

转载 互斥量与信号量的区别

互斥量与信号量的区别1.互斥量用于线程的互斥,信号量用于线程的同步。这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互

2017-07-04 15:45:35 365 1

转载 RT-Thread的线程(任务)处理

RT-Thread中使用线程这个概念,而不是任务。两者相似,我在这里把他的线程当作任务来理解了1、任务处理:动态任务相关API创建任务:rt_thread_create函数,创建任务之后会返回rt_thread_t类型的任务ID创建之后启动任务:rt_thread_startup删除任务:rt_thread_delete任务延时函数:rt_threa

2017-07-04 11:16:47 384

转载 C/C++语言void及void指针深层探索

1.概述  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。  2.void的含义  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。  void几乎只有“注释”和限制程序的作用,因为从

2017-07-02 11:33:01 184

转载 怎样理解线程的睡眠,挂起阻塞

线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。下图是使用时间片轮转法的操作系统进程的状态和它们之间的转换。       挂起和睡眠是主动的,挂起恢复需要主动完成,睡眠恢复则是自动完成的,因为睡眠有一个睡眠时间,睡眠时间到则恢复到就绪态。而阻塞是被动的,是在等待某种事件或者资源的表现,一旦获得所需资源或者事件信息就自动回到就

2017-06-30 09:47:56 2106

转载 线程和进程的区别

首先来一句概括的总论:进程和线程都是一个时间段的描述,是CPU工作时间段的描述。下面细说背景:CPU+RAM+各种资源(比如显卡,光驱,键盘,GPS, 等等外设)构成我们的电脑,但是电脑的运行,实际就是CPU和相关寄存器以及RAM之间的事情。一个最最基础的事实:CPU太快,太快,太快了,寄存器仅仅能够追的上他的脚步,RAM和别的挂在各总线上的设备完全是望其项背。那当多个任务要执行的时候

2017-06-30 09:24:26 264

转载 CAN-bus 使用

前言                 CAN定义了物理层和数据链路层,硬件上主要由控制器(如Philips 的 SJA1000或者类似STM32F407集成了控制器的MCU)和收发器(如Philips的 TJA1050或PCA82C250)构成。在CAN-bus网络上,CAN报文以广播的形式发送,CAN报文不包含地址信息,是否处理接收到的CAN报文及如何利用由接收点软件上层协议确定。C

2017-06-22 12:57:04 796

原创 STM32串口使用偶校验时初始化

/*USART 1 配置使用奇数校验或者偶数校验时,需要把数据长度定位9bit!*/USART_InitStructure.USART_BaudRate =115200;USART_InitStructure.USART_WordLength =USART_WordLength_9b;USART_InitStructure.USART_StopBit

2017-06-15 09:53:23 7838 3

转载 #ifndef/#define/#endif使用详解

想必很多人都看过“头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复引用了,会产生什么后果?是不是所有的头文件中都要加入#ifndef/#define/#endif 这些代码?    其实“被重复引用”是指一个头文件在同一个cp

2015-06-17 09:49:19 357

转载 GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名

1。gcc包含的c/c++编译器gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明白前面这半句是什么意思:))一般c程序就用gcc编译,c++程序就用g++编译2。gcc的基本用法gcc test.c这样将编译出一个名为a.out的程序gcc test.c -o test这样将编译出一个名为test的程序,-o参数用来指定生成程序的名

2015-05-24 16:21:15 452

转载 在Linux中创建静态库和动态库范例 (hello.c)

# gcc -o hello main.c -L. -lmyhello# ./helloHello everyone!#我们删除静态库文件试试公用函数hello是否真的连接到目标文件 hello中了。# rm libmyhello.arm: remove regular file `libmyhello.a'? y# ./helloH

2015-05-24 15:36:51 384

转载 keil5以上版本开发stm32不需要定义STM32F10X_HD,USE_STDPERIPH_DRIVER

用官方的库函数开发stm32时,不需要再c/c++选项卡定义STM32F10X_HD,USE_STDPERIPH_DRIVER也能编译成功,不会出现错误和警告,为什么呢?我到stm32f10x.h文件去看时,发现多了几句话:#if !defined  USE_STDPERIPH_DRIVER  #ifdef _RTE_    #include "RTE_Comp

2015-05-22 10:20:46 8582

转载 char * a, char ** a, char * a[], char a[][], char * a[][], char ** a[][], char * a [][][], and so on

本文测试环境 : X86-64 bit 架构的服务器CentOS x64 5.xgcc version 4.1.2 20080704指针和数组是C的比较难搞懂的知识点, 需要结合内存来学习, 非常感谢各位兄弟为我指点迷津.下面总结一下 : 首先说明一下C程序在运行时, 不同的内容或变量分别存储在什么地方?分了几块区域分别是, code

2015-05-13 10:41:48 390

转载 VMware安装了VMwareTools

我的Liunx装vmware-tools非常不顺利!开始没有正确安装1、首先安装gcc(看实际需要)和 kernel-devel在线安装GCC编译器: yum install gcc首先查看当前的内核版本,命令如下:uname -r然后执行yum install kernel-devel2、VMware装了VMware Tools后虽然鼠标可以随意移动进出,还是不能

2015-04-20 19:52:05 868 1

转载 DGPS与RTK的区别

第一课就是搞定一直困扰的DGPS和RTK的区别。差分GPS定位原理它使用一台 GPS基准接收机(基准站)和一台用户接收机(移动站),利用实时或事后处理技术,就可以使用户测量时消去公共的误差源 —卫星轨道误差、卫星钟差、大气延时、多路径效应。特别提出的是,当GPS工作卫星升空时,美国政府实行了SA政策。使卫星的轨道参数增加了很大的误差,致使一些对定位精度要求稍高的用户得不到满足。因此

2015-04-13 14:01:44 5815

转载 再谈下声明、定义、初始化、赋值和extern

虽然定义也是声明,但为了方便说明问题,下文中的声明只是单纯的声明,定义就只是定义。1.      声明、定义、初始化和赋值四个术语有着本质的不同,虽然有时候看起来差不多甚至完全一样,但如果不搞清楚很容易出现错误,或者错了不知道怎么改。 2.     a: extern关键词用来表明这是一个声明:extern int I;变量i就是一个声明。声明前面一定要有一个关键字extern,没有这

2015-04-12 12:11:48 2321

转载 “函数声明”、“函数原型”与“函数定义”辨析

对函数的“定义”和“声明”不是一回事。函数的定义是指对函数功能的确立,包括指定函数名,函数值类型、形参及其类型以及函数体等,它是一个完整的、独立的函数单位。而函数的声明的作用则是把函数的名字,函数类型以及形参的类型、个数和顺序通知编译系统,以便在调用该函数时进行对照检查(例如,函数名是否正确,实参与形参的类型和个数是否一致),它不包括函数体。————谭浩强 ,《C程序设计》(第四版),清华大学

2015-04-12 10:48:31 965

转载 enum枚举

一,两者的用法       枚举类型定义用关键字enum标识,形式为: enum 标识符 {      枚举数据表};枚举数据(枚举常量)是一些特定的标识符,标识符代表什么含义,完全由程序员决定。数据枚举的顺序规定了枚举数据的序号,从0开始,依次递增。enum status{     copy,     delete};枚举类

2015-04-11 22:28:28 500

转载 C语言枚举类型

在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再

2015-04-11 21:58:24 314

转载 typedef和#define的用法与区别

typedef和#define的用法与区别 一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef    int       INT;typedef    int       ARRAY[10];typedef   (int*)   pINT;typedef

2015-04-11 21:00:53 434

转载 unsigned char code 是什么

code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVX(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM的意思。 程序可以简单的分为code(程序)区,和data (数据)区,code区在运行的时候是不可以更改的,data

2015-04-03 20:31:17 25775 4

转载 如何看路由表!

教你如何读懂路由表, 你能读懂路由表吗?不懂?进来看看吧!当前的路由: destination 目的网段 mask 子网掩码 interface 到达该目的地的本路由器的出口ip gateway 下一跳路由器入口的ip,路由器通过interface和gateway定义一调到下一个路由器的链路,通常情况下,interface和gateway是同一网段的 met

2015-03-02 09:54:09 376

转载 路由一插网线就断网?教你用最简洁的方法搞定,有线无线同时工作

是否经常在调试路由的时候,插上网线后无线就断线,或者在自己搞不定路由设置的时候需要请人来远程控制,但苦于一插网线电脑就上不去网了的尴尬境地。 午饭教你一个非常简单但又实用的操作,就可以有效的避免这种情况,此方法在XP和win7下均有效!1、情况分析:windows默认状态下,有线网络优先于无线网络,所以会出现上面所说的一插上待调试的路由,整个电脑断网的现象。2、注意事项:请

2015-03-02 09:35:13 15023

转载 嵌入式中的 *(volatile unsigned int *)0x500 解释

C语言中*(volatile unsigned int *)0x500的解释:如下;(unsigned int *)0x500:将地址0x500强制转化为int型指针*(unsigned int *)0x500=0x10:对地址为0x500赋值为0x10其中volatile关键字有以下用途:(1)用来同步,因为同一个东西可能在不同的存储介质中有多个副本,有些情况下会使得这些

2015-02-10 16:12:51 2085

转载 防止普通用户 意外sudo passwd 改了root密码

2015-02-06 09:49:40 1964

转载 nano编辑器使用教程

使用Linux VPS会经常和编辑器打交道,一般常用的是vi和nano,虽然vi功能强大,但是相对新手来要稍微难上手,GNU nano是一个体积小巧而功能强大的文本编辑器。这里就简单说一下nano的使用方法。安装CentOS:执行yum -y install nanoDebian:执行apt-get install -y nano新建/打开文件nano 路径+文件名

2015-02-06 09:47:47 650

转载 在u-boot状态下用网线连接笔记本,没有本地连接 网口灯也不亮,但是进入QT可以

视频教程有说明,摘录如下:如果开发板正在运行 UBOOT ,它是在使用网络命令的时候才使能网卡,其他时候是不    使能网卡的。这意味着在 UBOOT阶段没有使用网络命令时,即使你已经接了网线,但是     windows的网卡仍然是断开状态。要想解决这个问题,建议使用一个 HUB或路由器,让     PC 、开发板的网线都接到 HUB 或路由器上去。UBOOT 是不回应 PING 包

2015-02-04 22:45:35 969

转载 Ubuntu 下设置IP配置

1、首先确定网络连接是否正确,所用的网线是否可以正常工作2、查看网卡是否能正常工作,检测的方法如下:a、ping 127.0.0.1b、ping 静态网关地址c、ping 主机名(hostname就可以看到主机名)3、看网卡地址是否配置正确(ifconfig命令看本地主机的网卡信息,和DNS、Default getway、Sever地址进行比对,看网卡地址是

2015-02-04 16:35:05 439

转载 Linux的网卡由eth0变成了eth1,如何修复

Linux的网卡由eth0变成了eth1,如何修复 使用wmware安装了linux,安装成功后,使用的网卡是eth0,没有eth1。但是用过一段时间后,不知道为什么eth0无法使用,系统却自动生成了eth1网卡,这可以使用ifconfig命令看的到。 [user@localhost ~]$ ifconfigeth1      Link encap:Ethe

2015-02-04 16:29:01 450

转载 linux下批量修改文件及文件夹所有者及权限

需要使用到两个命令,chmod以及chown例:对/opt/oracle/目录下的所有文件与子目录执行相同的权限变更:chmod -R 700 /opt/oracle/-R参数是递归 处理目录下的所有文件以及子文件夹700是变更后的权限表示(只有所有者有读和写以及执行的权限)/opt/oracle/ 是需要执行的目录例:对 /opt/orac

2015-02-04 11:16:50 698

百度不封号,网盘满带宽下载工具、可在线解压文件,免百度账号,免安装【Mac等非Windows版】

百度网盘满带宽下载工具、可在线解压文件,不需要百度账号,绿色免安装

2018-03-26

空空如也

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

TA关注的人

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