自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BlairFee的博客

人生在勤,不索何获。

原创 解决AD16元件焊盘间距报错 Clearance Constraint Between Pad

AD16同一个元件中封装焊盘间距可能会小于整体规则设置,从而导致报错: 错误如下: 有三种解决办法: 一. 在间距规则中增加对“元件”规则的约束: 在Query Helper中选择元件判断规则: 按图上所示把元件标号填写进去: 再运行DRC,就不再有错误了: ...

2020-03-07 12:25:57 528 0

原创 AD中Off Grid Pin和float Net label警告问题的根本解决办法

使用AD16画原理图,编译时Message出现off grid的警告提示,还有Floating Net Label警告: 而且生成的网络确实存在错误,发现PCB中这几个管脚没有网络,这个问题比较严重。如果忽视将造成线路不连通问题。 先在网上搜索了一下,有的说用右键Align选择Align ...

2020-02-27 13:19:20 837 0

原创 AD不修改元件库直接修改PCB元件让丝印避开焊盘的方法

PCB画好后需要增加两个焊接固定夹用的焊盘,但是发现增加焊盘的位置刚好被接插件的丝印挡住了,这样导致丝印盖在了焊盘上。如下图: 因为J2是通用封装,不想修改封装库重新导入,想在PCB中直接修改此元件的丝印。 方法是在J2上双击,在元件属性窗口中把Lock Primitives的勾取消掉: ...

2019-12-24 22:47:11 418 0

原创 实现STM32F405的串口IAP

STM32串口IAP过程简介 IAP包括两部分程序:BootLoader和Application(用户程序)。 IAP的原理是STM32上电后默认从0x8000000地址开始执行,所以在0x8000000到0x08003FFF这一段放BootLoader程序,大小为16K。BootLoader...

2018-12-29 17:43:04 1079 0

原创 OSAL移植到STM8

    最近需要用STM8S105做驱动控制器,涉及到使用485与上位机通讯,上位机的蓝牙模块中使用CC2541。这是个新产品,没有可借鉴的代码,涉及到的协议解算和逻辑结构又比较多,规划了一下架构并尝试写了几行代码,发现在编程幼稚园中学的状态机式编程实在难以胜任,于是打算上一个操作系统。 考...

2018-11-09 13:56:27 1897 3

原创 解决地线设计问题导致TMS320 DSP JTAG无法连接,报错Error -516 @ 0x0 failed the scan-path reliability test

芯片为TMS320F28035,新投的PCB,送焊回来后连接JTAG仿真器发现连接不上,报错如下:Error connecting to the target: (Error -516 @ 0x0) The user selected specific frequency failed the s...

2018-06-17 14:12:57 1253 0

原创 解决DC-DC输出为三角锯齿波问题

使用MPS的MP2565芯片,电源输入:24V, 输出12V 1A和5V 1A,根据手册上推荐的走线和参数进行PCB投板,焊接回来后上电听到明显电感线圈的“滋滋”噪声,用示波器交流模式测量输出电压,是个三角锯齿波,峰峰值有2V左右,明显达不到设计要求。电路原理图如下:查看该波形感觉是DC-DC...

2018-06-17 12:54:33 3031 0

转载 无线与射频设计指南:扩频通信概述

转载自 RFsister创客射频空间 有关扩频通信技术的观点是在1941年由好莱坞女演员Hedy Lamarr和钢琴家George Antheil提出的。基于对鱼雷控制的安全无线通信的思路他们申请了美国专利#2.292.387。不幸的是当时该技术并没有引起美国军方的重视,...

2018-01-05 09:44:32 818 0

原创 win7 x64安装python3报无法启动提示丢失api-ms-win-runtime-1-1-0.dll

需要为系统安装KB2999226 x64补丁,到微软官方去下载,地址: https://www.microsoft.com/zh-cn/download/details.aspx?id=49093&134b2bb0-86c1-fe9f-d523-281faef41695=1&fa4...

2017-12-24 14:13:32 5518 2

原创 Hanoi Tower汉诺塔问题函数递归算法分析及相应python代码

函数递归应用中最经典的案例要算是汉诺塔(Hanoi Tower)问题了。 题目如下:   相传印度有一个梵塔,塔内有三个座A、B、C。A座上有n个盘子,盘子从上到下一个比一个大,最大的在下面。目标:僧人要把这些盘子从A座移到C座,中间借用B座,每次只能移动一个盘子,并且在移动过程中必须...

2017-12-22 09:38:59 534 0

原创 CentOS7中安装Xampp5.6.32

1. 切换到安装文件要放置的目录 cd /usr/local 2. 下载安装文件 wget https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/5.6.32/xampp-linux-x64-5.6.32-0-installer...

2017-11-30 11:25:03 671 0

原创 CentOS 7中使用yum方式安装MySQL 5.7.20

一开始尝试使用.tar包方式安装因为时间关系没有完成,可以参看 “yisheyuanzhang的博客” http://blog.csdn.net/yisheyuanzhang/article/details/51699234 第二天想了一下决定试试yum安装方式,安装过程比较简单。可以参考官方文档...

2017-11-29 23:16:13 538 0

原创 CC2540 Large OAD实现程序无线升级

CC254x代码量小于128K的可以使用ImageA和ImageB互切的方案,这个是TI比较标准的方案,但是有两个缺点:一是代码量限制的太小了,仅例程编译下来都要110K了,给用户可以扩展的空间太小;二是两个Image要分成不同的版本,每次升级要关注版本号,比较麻烦,也不符合常规升级习惯。 对...

2017-10-16 14:12:43 719 0

原创 CAN总线中继的feedback suppression

做CAN中继时,如果不加缓存逻辑,可以使用两个廉价CAN收发器进行背对背连接,在电路上就形成中继效应时。但是,不可以像RS232芯片那样直接交叉TX-RX&RX-TX,这是因为CAN收发器内部有闭环反馈。 如图所示,总线的信号要反馈到RX上进行实时的监控,就相当于TX要反馈给RX,这样才...

2017-07-07 13:35:08 449 0

原创 CC2541程序向CC2540移植

最近项目需要使用BLE通讯,因为没有使用USB,于是选定使用CC2541,价格能便宜些,性能还好(功耗小)。按照TI的例程很辛苦地写完程序,反复调试通过,于是准备小批量。没想到,有句话果然不假,最容易发生问题的时候一定会发生问题。程序放进去连BLE设备都扫描不到。 按照经验,这应该可以确定就是硬...

2016-10-21 16:42:29 2869 0

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

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

2016-09-12 15:58:37 5968 1

原创 STM8/STM32硬件I2C读取APDS9930程序代码

STM的硬件I2C一直被各种吐槽,实际上只是用起来比较复杂而已,难点主要是在作为Master时的数据接收上,作为Slave时的数据发送没难度,正常用。重点是要真正掌握它里面设计的那个Data shift register和Data register,后者是前者的数据存储,     作为Maste...

2016-08-11 14:58:09 8335 2

原创 MySQL安装或重装后出现无法启动MySQL服务错误:发生系统错误2 系统找不到指定的文件

在安装过MySQL之后如果再安装可能会出现这种情况,这是因为服务的路径设置不对导致的。 要修改注册表,路径见下图左下角的路径信息,把ImagePath改成你现在的路径就可以了:

2016-04-11 17:43:20 12182 2

原创 MySQL5.7.11免安装版的安装和配置:解决MYSQL 服务无法启动问题

在http://dev.mysql.com/downloads/mysql 这个官网下载MySQL5.7.11

2016-04-11 11:30:12 5709 1

原创 C#换机器后调用dll失败提示无法加载DLL找不到指定的模块

用C#写了一个软件,并且用C++写的核心算法封装成了dll,使用非托管的调用方式,C#中核心代码如下:    public class CPPDLL     {         [DllImport("HDLC.dll", CharSet = CharSet.Auto, Cal...

2016-04-07 10:51:43 10182 2

原创 MDK 查看局部变量显示<not in scope>

用MDK调试一块STM32F207的程序,想查看一下变量却发现watch窗口总是  和,无奈只好凑合着通过printf函数进行串口打印查看。 后来实在受不了,想了一下,觉得应该是编译器把这个局部变量给优化掉了,并没有在内存中生成,果断把优化级别改为Level 0,重新编译,解决。

2014-12-26 15:56:35 7190 0

原创 嵌入式程序中的回调函数

嵌入式程序中比较让人头疼的是回调函数的运用,下面说一下回调函数的意义,以帮助程序理解。     我们写了两个用于向用户输出信息的函数,它们的功能基本相同,只是使用了不同的输出设备,假设为: void Printer(char a) { 使用打印机做输出; } void Screen(...

2014-12-01 10:48:13 2375 0

原创 Cadence Other格式网表导出与导入

 Cadence支持两种方式的网表导出与导入: 一、Orcad Captrue网表导入Allegro 二、Other格式的网表导入Allegro 第一种方式是在Orcad的Toos->Create Netlist->PCB Editor页面进行设置:

2014-10-15 10:44:57 8706 1

原创 ARM指令ADR和LDR浅析

     LDR指令本身是数据读取,将内存中的值载入到寄存器中,因为ARM的MOV指令不直持由内存直接向寄存器中传数。LDR指令的这个含意是比较容易理解的。例如, LDR R0, _START ;指将_START标记的内存位置的值载入到R0。 但是,ARM汇编器又为LDR赋予另一个伪指令...

2014-10-08 15:56:27 1071 0

原创 Cadence Allegro中为铜皮添加VIA并分配网络

在Allegro中没有直接添加VIA的方法,

2014-09-21 14:29:33 9468 0

原创 Orcad去除修改后元件标号的下划线

Orcad在复制替换元件后,新的元件标号

2014-09-18 09:50:23 8844 0

原创 C#实现任务栏高亮(闪烁3s就停止并一直处于高亮状态)

今天用C#做一个类似QQ的通讯软件,因为有时候收到消息了没有注意到,所以想在收到消息后实现任务栏一闪一闪,最后为高亮橘黄色,就像QQ发消息时那样。经过反复搜索和查询API,发现任务栏闪动并停留需要使用这个函数: public static extern bool FlashWindowEx(ref...

2014-09-13 18:25:11 2253 0

原创 Orcad错误:Conflicting values of Source Part names found...

画了一个模块比较杂的原理图,为了省事,就从官方评估板上复制过来一部分原理图,将里面的电容改成了自己想要的名字。然后又从自己原来画过的原理图中复制了一部分电路,然后是根据需求使用自己的库里的元件新画了一部分电路。今天在成生Netlist的时候发现报错:         如图选中该错误,按F1键查看...

2014-08-22 15:09:21 6353 2

原创 C#窗体工程建立后如何修改工程文件名和命名空间

今天写了个小测试程序,一开始使用的默认命名WindowsFormsApplication2,写完后觉得名字不好看,于是想改个名字,但是试了一下,想完整的改名还挺复杂,不但要改解决方案名,项目名,还要改命名空间名和文件夹名。顺序如下: 1. VS2010上解决方案名上右键->重命名 2. 项目...

2014-08-13 17:19:38 6238 2

原创 制作Orcad的变种BOM(Variant BOM)

通常在Orcad中画的原理图并不只是用于一款产品。例如一个控制器原理图,可能对应着许多款子产品线,而这些子产品线之间的区别就是通讯口组件不同,少焊几个芯片,或者只是少焊几个电阻。     但是这样交付生产的时候,整理BOM却是一个很头疼的问题。需要有极好的耐心,要把每条产品线中用不到的元件一个个的...

2014-07-25 14:08:42 4600 0

原创 orcad元件属性批量修改及BOM表

本文适合于没有使用CIS的情况下, 第一步:编号 首先给元件编好号: 如果是沿用旧工程,用这个编号。如果是创建的新工程,使用第二项,强制从头开始编号。因为编号与PCB是相对应的,如果任意改动旧工程的编号会导致PCB出错,所以添加新元件后通常都是使用自增编号;而新工程不会存在这个问题,从头开始...

2014-07-11 08:58:36 7961 2

转载 Java 接口“实例化”分析

http://hi.baidu.com/wangmingshuo/item/609b2bf87e97ed3e753c4c43 1 2 3 4 5 6 7 8 9 10 11 1)  public   interface   Handler{...

2014-05-29 18:29:59 904 0

原创 浅谈LDO

LDO是靠压差变换电压的。例如5V输入,3V输出,电路本身电流是200mA,那么

2014-05-05 15:55:27 1420 0

原创 STM32从Flash地址0x08000000的启动重映射

在初写STM32程序时,遇到一个困惑,STM32的Flash在MDK里被设置为起始地址0x0800 0000,而CM3手册规定芯片复位时要从0x0000 0000地址开始取出中断向量 ,那STM32怎么样执行代码呢?地址重映射?或者在0x0000 0000里有对应有实际存储器? 仔细阅读手册,发...

2014-03-17 10:59:12 7676 0

原创 uC/OSIII的消息队列处理机制

在uC/OSIII中没有邮箱这个概念,而是统一合并到了消息队列MSG_Q。因为消息队列可以看作是很多邮箱的集合,邮箱只是包含单个消息的消息队列。 在分析消息队列之前,必须要对消息的数据结构做一个彻底的分析。 消息队列对象和其他内核对象一样,它的结构定义很简单: 下面看一下消息队列的结构体,记...

2014-03-16 17:40:49 1929 0

原创 uC/OSIII时钟节拍处理过程

时钟节拍涉及到的函数调用过程: 从main开始,创建了第一个任务AppTaskStart,在其一开始执行时,对BSP和CPU进行初始化,调用BSP_CPU_TickInit()函数; 该函数定义在bsp文件夹下的bsp.c文件中,该函数先读取时钟频率,然后按OSCfg_TickRate_Hz值计算...

2014-03-14 17:57:57 3635 0

原创 板子修理经验一例

同事一块小板子,RC滤波后直接进单片机差分AD采样。核心就这样的四个元件,两个R,一个C,一个MCU。 在RC滤波后,直到AD引脚上,电平都正常。 进入单片机后,程序输出显示0xFFFF,16bitAD,明显是超范围了。本以为是程序有bug,仔细询问后,已经生产了100块了,只有这3块有问题。...

2014-03-13 20:04:17 624 0

原创 #include顺序不正确导致定义无法找到定义

本意是想将全部头文件包含在一个文件里,可以省去每次在各个c中添加各种头文件。 因此在includes.h中做了以下包含: #include #include #include #include "LED.h" #include "bsp_ser.h&...

2014-03-13 19:51:28 1577 0

原创 结构体的定义位置不正确导致的错误

今天遇到一个结构体数组的定义错误,MDK编译器报错为: error: expression must be a pointer to a complete object type 本以为是函数形参为指针,调的是结构体变量名而出错,以前遇到过这种调用错误。但是检查后发现并没有调用问题。结构体数组...

2014-03-11 20:17:58 5985 0

原创 uC/OSIII在Cortex-M3的任务切换和中断退出分析

按uC/OSIII书中所讲,普通任务切换和中断进入退出后的任务切换应该是不同的函数,因为普通任务切换时要入栈出栈全部寄存器,而中断进入和退出时处理器会自动入栈出栈一部分寄存器(Cortex-M3 是自动保存xPSR, PC, LR, R12, R0-R3 )。 但是uC/OSIII在Cortex-...

2014-03-09 15:43:27 2563 0

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