自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (7)
  • 收藏
  • 关注

转载 给MFC程序添加通知区域图标

给MFC程序添加通知区域图标        现在起来越多的程序都有一个通知区域图标(托盘图标),既美观又方便。但是MFC不像C#一样提供NotifyIcon控件,要实现通知区域图标,就要自己做一个CTrayIcon类或者使用NOTIFYICONDATA结构。       MSDN中关于NOTIFYICONDATA的介绍:       http://msdn.microsoft.com/en-us/...

2018-03-19 21:28:00 536

原创 SF使用底层

保存工作空间变量到m文件:Simulink.saveVars('P1_Parmeter.m')用户底层已定义好结构体,stateflow上层需要调用该结构体,方法是:在stateflow里的配置项中,Simulations Target—>Header file 中添加头文件信息,如#include“add.h”,如下图所示然后在Code Generation—>Custom Code...

2018-03-12 16:09:44 503

原创 ucos调试经验

1、中断里不能创建任务、删除任务,若需要在中断里创建任务,可以在中断里利用邮箱或消息队列来发送到另一个任务,然后在另一个任务里进行创建。2、使用邮箱或消息队列时,若在中断里向另一个任务发送信号,中断里所执行的程序不能过长,若需要处理大量数据,那么最好把处理程序放在一个任务里,然后通过邮箱或队列来发送信号。若中断里放了大量处理数据,这时使用邮箱发送信号,有可能信号会丢失。ucos需要中断尽量简洁

2018-01-29 23:12:10 1330

原创 MFC 鼠标悬停事件,提示信息

MFC里这个类叫做CToolTipCtrl,具体用法很简单。1.在类头文件中声明CToolTipCtrl的类对象m_stat。CToolTipCtrl    m_stat;//鼠标提示信息2.在初始化函数OnInitDialog()中设置m_stat。//按钮等鼠标悬浮提示初始化 m_stat.Create(this);   m_stat.AddTool( GetD

2018-01-21 20:17:24 3442 1

转载 Keil编译器——一些注意的地方

(0)watch实时刷新参数值的方法:勾选view->Periodic Window Update(1)基本配置:Target选项卡中:勾选Use MicroLIB,可以优化代码Output选项卡中,Debug Information:若不勾选,调试时无法打断点;Create Hex File:生成Hex文件;Browse Information:不勾选,无法使用鼠标右键 go to def...

2018-01-11 19:38:58 8998

转载 MDK (keil) 没有使用到的函数编译时候会有警告的解决

在使用MDK编写STM32代码时,有些函数如果没用到会报警告:函数定义如下:但是STM32有很多库函数,为什么没使用到的就不会报警告呢?这里有一个编译细节,就是函数的有效范围问题。库函数并没有使用static关键字,因为它可能会给其他文件使用,所以编译器会进行全编译,不做整个工程的调用检查,所以也不会报错,但是这样编译出来的HEX文件会大。而我写

2018-01-11 17:20:02 3128

转载 μC/OS-II学习之:任务,信号量、邮箱、队列及其区别

一:UCOS是一种抢占式的多任务操作系统,如果最高优先级的任务不主动放弃CPU的使用的话,其他任务是无法运行的,通常情况下,高优先级的任务在使用完CPU或其他资源后都要主动放弃,可以通过延时函数或者时等待一些信号量之类的让自己挂起。但是如果最高优先级任务一直使用CPU,那就跟单任务没有什么区别了。二:可以通过等待信号量,消息等是当前任务挂起,或者通过通过延时函数将任务挂起,从而让其他优先级

2018-01-09 21:40:49 574

原创 uCOS学习笔记

1、uCOS不支持时间轮转调度法。2、uCOS提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。它们之间的区别:邮箱:只能存放一个消息;邮箱是用来传递消息缓冲区指针的数据结构;消息队列:加入了循环队列,可以存放多个消息,可以看成是多个邮箱的组合;消息队列是用来传递多个消息邮箱的数据结构;信号量:高优先级的任务在等待接收信号量的时候,若低

2018-01-09 15:59:51 936

原创 STM32后缀及选型杂记

举例:STM32  F  103  C  8  T  6"F"那一位指的是产品类型,现在似乎只有通用型即"F""103"那位指的是产品子系列,101= 基本型,102 = USB基本型、USB 2.0全速设备,103 = 增强型,105或107 = 互联型"C"那位指的是引脚数目,T=36脚,C=48脚,R=64脚,V=100脚,Z = 144脚"8"那位指的是FLASH的大小,4=16K,6=3...

2018-01-09 13:30:59 5348

原创 SL定标杂记

最近在学习Simulink的定标,下面记录一下方法,以备以后之用。以下图为例,双击Kp 增益,定位到第2个选项卡【Signal Attributes】然后再输出类型中选择fixdt(1,16,2^0,0),然后点击右侧带》的按钮,可进行详细设置。fixdt(1,16,2^0,0)这里面参数的含义如下:第一位:1:代表有符号,即Signed;0:代

2017-12-31 16:38:10 1421

原创 RAK411/RAK439 spi转wifi模块调试

等了好几天终于等到了这个模块,官方只提供了stm32f4的例程,却没有f103的例程,应该很多人都是在用f103吧。根据f4的代码修改到f103上。开始测试时由于没开uart功能,于是把printf函数屏蔽掉,然后发现miso和mosi连接反了,之后测试初始化正常。然后测试主函数程序,开始是这个样子的,勉强能用,但有时候会不响应数据。if(Send_RecieveDataFlag==R

2017-12-29 20:53:36 2111 4

原创 USB接口,MicroUSB接口

DM是USB的数据线D-(白色线),DP是USB的数据线D+(绿色线),GND是地(黑色线),VCC是电源5V(红色线);USB插头线一般的排列方式是VCC、 D- 、D+、GND

2017-12-03 13:04:21 2381

转载 Visual Studio 实用扩展推荐

Visual Studio 拥有非常不错的可扩展性,在之前的文章中,我也给大家示范了如何进行编辑器的扩展(详见文末参考资源)。在本篇文章中,我将介绍几款非常实用的扩展,从而帮助我们提高开发效率。 C# outline  Visual Studio 默认的大纲方案只允许在方法级别及以上进行代码的折叠,无法对一个if、while的区块进行折叠,而这款工具则正好弥补了这个问题。

2017-12-01 17:16:22 2741

原创 PC端的神器软件

1、桌面管理:Fence,整理后的图标可以上浮于桌面。拖动图标往左或往右,可以新建第二桌面。2、桌面便签:小孩桌面便签,当时与sticks对比了一段时间后才决定用这个的。3、浏览器下载:IDM,非常好用,下载速度很快。4、电脑搜索:Everything。搜索东西非常快。5、小体积浏览器:世界之窗3.6,前提是电脑里有IE。6、百度网盘下载:PanDownload.exe,没有限...

2017-11-22 21:08:58 1398

原创 LM2735Y 5-12v升压问题

从昨天下午到现在,居然被一个升压电路困了这么久,下面记录下问题的解决过程。问题现象:使用LM2735Y从5v升压到12v空载正常,一接负载就立马降到不足5v,最后测试发现,只能驱动一个LED,电流也就10mA左右。问题解决过程:开始怀疑是芯片坏掉,换了新的还是一样,后来又换了电感,也是一样,由于板子上有两个LM2735,只有一个能用,甚至怀疑是板子问题,但板子画的时候是对称的。就这样一直换

2017-11-22 18:38:31 1251

原创 CANoe学习笔记

现在使用的CANoe是十几年前的了,软件版本为V5.1,好在一些功能还是具有的。下面记录一下一些注意事项等问题。5.1版本的软件在xp下能运行,在win7下就难了,笔记本和台式机都是win7 32,系统也是同一个包,但只能在笔记本运行(重复打开软件3次以上才能运行)。CANoe常用的几个模块有CANdb Editor,CAPL Browser,Panel Editor。其中,CANdb E

2017-11-19 21:52:12 14780 3

原创 MSCAN标识符验收及掩码寄存器配置

这两个寄存器经常会搞混了,在这里记录一下,以备下次使用时查阅。单片机为飞思卡尔16位单片机,下面以自己的理解来解释这两个寄存器。CANIDAR0-7(标识符验收寄存器):如果接收的ID中有对应的位都为1,则该位在此寄存器写1,不全为1的(00,01,10)均为0;举例说明:需要接收的ID(标准帧)ID1:0x550;ID寄存器值:0xAA00;ID寄存器二进制值:1010 10...

2017-11-14 21:34:36 5889 1

原创 单片机总线时钟粗略计算

最近一直在想怎么测单片机的总线时钟,于是想出了一个方法,也不知是否正确,权且估算一下吧。先说明一下时钟周期,机器周期,总线周期的区别吧:时钟周期: 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。机器周期:    在计算机中,为了便于管理,常把一条指令...

2017-11-14 17:09:08 2546

原创 SL快捷键及杂记

模块翻转:Ctrl+R 90度旋转;Ctrl+I 180度翻转

2017-11-09 11:29:23 423

原创 SL代码生成配置

在模型中对接口参数(即输入、输出)进行处理时,一般有以下两种方式:第一种:对信号线进行命名后,然后右键信号线—属性—Code Generation,如下图所示这种方式比较简单易用。第二种方式:在模型浏览器里定义变量,可以选择定义该变量或从其他底层文件调用改变量(从底层调用的话需要包含相应的头文件即可)在模型浏览器里点击Add—>Add Custom,选择mpt.Signal,填

2017-11-08 14:52:16 482

原创 MFC中SetTimer定时不准确?试试用多媒体定时器吧

最近做一个项目,需要用到1ms的定时器中断,但用SetTimer总是觉得不准确,后来用程序一测试,还真是不准,定时时间设为1ms,但实际大约没10ms触发一次中断,至于如何测试的后面有代码。网上很多人也说了SetTimer定时不准确的问题,后来用多媒体定时器,就比较准了。多媒体定时器使用方法:添加头文件#include "mmsystem.h" //head file#pragma

2017-08-21 08:50:22 2640

转载 基于CANoe的ECU Bootloader刷写软件

目标:        车辆ECU需要更新软件,通过OBD口实现,通过CAN总线实现,编程语言是CAPL。        刷写流程基于ISO15765-3;应用层基于UDS(ISO14229)诊断协议;TP层基于ISO15765-2;数据链路层和物理层基于ISO11898实现:       1.图形用户界面使用CANoe自带的panel来实现,用户可以选取刷写文件,E

2017-07-12 09:36:51 29967 17

转载 UDS的CAN刷新软件

http://www.gzweix.com/article/sort0253/sort0487/info-260414_2.htmlISO 14229用于刷新方面的主要诊断服务见表1。 根据ISO 14229协议的诊断服务及ISO 15765-3的通信建议, 刷新通信主要分为3个部分: 刷新前准备工作, 刷新过程, 刷新后的处理过程。 刷新前准备工作和刷新后的处

2017-07-12 09:23:55 13653

转载 UDS简述

作者:autogeek原文链接:http://www.cnblogs.com/autogeek/p/4458658.html1. 简单的通信机制其实诊断通信的机制很简单,可以类比client-server通信方式,即客户端发送request,服务器收到request之后进行处理,然后向客户端发送response。但是,诊断协议有自己的特色,它规定了在request和resp

2017-06-28 19:13:08 22284 4

转载 ISO15765协议

ISO 15765 网络层协议分析ISO 15765 网络层的功能主要有:(1)为上层的应用层提供接口服务。(2)进行内部操作。为上层服务提供接口从而实现数据交流;主要有为对等实体间的通信提供分段、重组和流控制这几种方法方法。(3)网络层中的时间控制。网络层原语服务分析对于为上层提供服务,网络层一共定义了以下 3 个原语服务通过这三种原语

2017-06-28 13:07:11 1394

原创 STM8+STVD+COSMIC 学习笔记 address is out of range and is ignored

在连续整了一个下午,一个晚上,又一个上午之后终于可以用STVD调试了!以此来纪念一下。单片机时STM8AF5189,工程是人家编译好的,结果拿到手里编译后发现s19文件变大了不少,而且里面的地址出现了一些0x0000开始的地址,正常情况下应该是从0x8080开始才对,最开始的感觉就是编译器配置问题,在改了若干项配置,包括优化等等,还是不能仿真,debug时提示swim communicatio

2017-06-27 11:24:24 5882

转载 STM32串口下载方法-USART BootLoader

玩STM32,J-LINK仿真器固然很好,不够J-Link价格昂贵,还好STM32内部自带Bootloader,可以串口下载程序。本人觉得串口下载方式简洁,廉价,就一个USB-TTL转换器即可完成。  一.首先在能正常工作的最小系统板,开发板上将232电路调通,保证可用,就是无障碍的和PC通讯。然后将写好编译好的HEX文件载入下载即可,这里STM32的识别hex文件的,这点比LM3S系列的AR

2017-06-25 21:26:55 33800 2

原创 MOS驱动

以下为调试MOS驱动时碰到的问题及解决方法:1.用USB供电,MC34063没有升压。解决方法:330uh的电感没有焊接好。2.MOS一路正转可以,反转不行解决方法:换了一路MOS,好了。

2017-05-21 17:17:07 636

原创 重调SJA1000

从接触SJA1000到现在已经一年多了,去年2月份搞好了之后基本就没再动过,一直跑着之前的程序,没问题也没额外的收货。直到昨天,有人说要通过can总线传输温度,恰巧当时设计板子时预留了DS18B20的接口。起初测试时,温度在液晶上一直显示为0,于是怀疑单块板子在不进行can通信时可能会卡死,于是找了另一块板子,让两者通信时再读温度,还是不行。最后单独找了个测温度的程序,把液晶移植过去,结果液晶

2017-05-01 11:04:57 1451 1

原创 S-Fun在TLC封装时的使用

1、在Simulink中找到s-function模块,右键该模块,选择Mask-Create Mask(下一次进来时选择Edit Mask),将需要填的信息填入模块中点击Ok退出。2、右键该模块,选择Block-Parameters(S-Function),在Name一栏填入.c文件的名字,以及在S-Fun里用到的变量点击Edit,编写S-Fun的具体内容。3、写完

2017-04-15 21:29:30 2188

转载 修改Matlab启动工作默认文件夹及模型添加到library

修改Matlab启动工作默认文件夹在桌面matlab的快捷方式的属性中,将你常用的文件夹位置输入到起始位置中,然后“确定”。下次再打开Matlab的时候,默认的工作文件夹就是你设置的文件夹。

2017-04-09 21:02:29 2992

转载 基于模型开发之代码集成——LegacyCodeTool

两种比较简单的方法可以将代码集成到模型中。 1、使用Legacy Code Tool来集成C代码到Simulink模型 2、在StateFlow建模过程中使用CustomCode 集成或调用已有C代码LegacyCodeTool简要说明 Legacy Code Tool是Matlab中的一个命令行工具,它可以很方便的将已有的C

2017-04-09 20:54:37 5121 3

原创 自动生成代码设置事项

打开设置1.在Solver里,选择Fixed-step,discrete。1.在Hardware Implementation里,选择单片机型号。2.在Code Generation里,选择ert.tlc,打钩Generate Code only。Report里,打钩最上面两个。Templates里,去掉钩Generate an example main program3.

2017-04-07 21:36:13 789

转载 Matlab&Simulink开发STM32F4

来源:在接触MATLAB的几年中,发现MATLAB在功能上越来越强大,在结合simulink上开发许多的嵌入式原型产品发挥了很大的实时仿真能力,由于平时在实验室里接触过很多开源的东西,在心里面很喜欢这样的开源文化,偶然中,在网上看见国外的Maker与Hacker爱好者用matlab开发Arduino和树莓派等开源硬件,就思考就合周边的东西试想能不能用MATLAB开发,这样也进一步让自己在实践中更好

2017-03-22 09:42:03 3686 4

原创 MFC添加属性页杂记

为了能实现在同一个页面实现多个页面的切换效果。CPropertySheet要与CPropertyPage一起使用。首先     新建一个MFC工程--MFC AppWizard(exe), 取名Pagesheet, 选择Dialog based, 然后Finish.2.       在对话框资源中插入两个对话框IDD_DIALOG1、IDD_DIALOG2,作为两个子页

2017-02-21 17:26:02 1208

原创 P3P维修记录

前段时间买了个3a,后来看到有御上精灵的壳子,心想着再组装个3a吧,于是到咸鱼找到了卖主板的,买了个炸鸡3p和3a板子,顺便买了5个电机。前几天到货了,3a板子已经烧的面目全非,根本不能用了,3p板子还可以,将自己的3a拆开,把3p连入电路,可以与遥控器通信,显示电调错误。但有4个电调,究竟是哪一个坏了就不知道了。索性把电路板仔细研究一下,发现电路板画的比较整齐,而且还提供了一些调试焊盘,其中有一

2017-01-18 10:58:18 511

转载 ccp协议

最近学习CCP协议,总结了下:1、  CCP协议概述CCP(CAN Calibration Protocol)是一种基于CAN总线的匹配标定协议。ECU都需要经过匹配标定的过程,从而确定其运行参数和控制参数。有时为了实现对ECU的精确控制以及参数匹配修改,满足预定的要求,必须对ECU进行精确的匹配标定以及优化各项控制参数。基于此,ASAM自动化测试系统标准协会(Associatio

2017-01-08 14:21:29 13465 4

转载 每天读一点儿APM(PIX)代码之四:minimosd

今天来聊一聊minimosd。Osd的全称是on-screen display,指在屏幕视频之上叠加数据,相信每一个使用apm或者pix做飞行控制器的人都多少与osd打过交道。 目前市面所有的飞控osd模块都是起源于google上的minimosd项目。  该项目版本截止于12年的2.0。其硬件解决方案是采用atmega328芯片作为主控,配置相当于arduino nano,具

2016-12-31 22:22:04 1502

转载 Pixhawk OSD二次开发,实现界面定制

​最近在调四旋翼用到的minimosd,虽然在网上可以找到一些资料,但是资料讲解的比较范范,有些步骤还是不知道应该怎么操作。经过这两天的摸索,终于搞清了OSD的开发过程,下面就做简要的述。    惭愧的很,其实研究飞行器pixhawk已经有近一年的时间了,也曾一直想写点什么,但总是被各种理由耽误和错过了。从这篇开始吧,养成一个写博客的好习惯,与人交流,也方便以后自己的再复习,以后再慢慢地把

2016-12-31 22:19:46 3410

原创 大疆Naza-LED模块---或许并不是最佳方案

一直以来,感觉大疆的飞控都比较不错,最近闲着,拆解了其Lite的LED模块。拆开LED模块后,有四个铜柱固定上下两个板,其中一个为LED灯,另一个板则为测量电压与提供5V电压的板。表面上看这两个板相互独立,但其实他们之前通过两个铜柱进行了连接,如下图所示,其中一个铜柱传递5V给LED,另一个则传递GND。起初还有一点不解,明明LED的四根线中有5V这根线,为何还会增加这个稳压板呢?后来拆解后发现,

2016-12-24 10:23:14 6256

ISO15765-2-2016 UDS网络层 最新版

ISO15765-2-2016 最新版的协议 网络层

2019-01-02

ISO 14229-1-2013 最新版 UDS

ISO 14229-1-2013 最新版 非扫描版

2019-01-02

ISO 14229-1-2013 最新版

ISO 14229-1-2013 最新版 非扫描版 ISO 14229-1-2013 最新版 非扫描版 ISO 14229-1-2013 最新版 非扫描版 ISO 14229-1-2013 最新版 非扫描版

2017-09-27

ISO15765-1-2011

ISO15765-1-2011 原文PDF,非扫描版 ISO15765-1-2011 原文PDF,非扫描版ISO15765-1-2011 原文PDF,非扫描版

2017-09-27

ISO15765-2-2016

ISO15765-2-2016 最新版的协议 网络层 ISO15765-2-2016 最新版的协议 网络层 ISO15765-2-2016 最新版的协议 网络层

2017-09-27

A2l文件生成过程

A2l文件生成过程A2l文件生成过程

2017-02-15

贴片电阻值计算器

贴片电阻值计算器,贴片电阻值计算器

2017-02-15

空空如也

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

TA关注的人

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