自定义博客皮肤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的博客

人生在勤,不索何获。

  • 博客(56)
  • 资源 (3)
  • 收藏
  • 关注

原创 一种电缆外护套的棉纶线缠绕式收口绕绳方法

电缆外经常要套上棉纶或者涤纶护套,以增加耐磨性和美观。如上图,护套的收口是个难点,容易散开。一种比较好的处理方式是用棉纶线缠绕收口。本文以火腿肠皮作为电缆护套的示例,绕绳方式如下几个步骤:123456789...

2022-02-14 00:46:37 488

原创 Solidworks安装失败,出现内部错误:该产品组件的windows installer没按预期运

安装中注意有两个雷,建议在安装之前就做以下操作!!防止报错了再返工浪费时间。。第1个是安装时出现以下错误:这个表示之前其他软件装过Microsoft C++ xxxx Redistributable程序,与本次安装发生冲突了,解决办法是到“程序”中先卸载掉之前安装的旧程序,所有带Microsoft C++字样的都卸载掉,如下图:第2个雷是安装中间出现“solidworks安装时出现内部错误:该产品组件的windows installer没按预期运”,保存下错误日志,发现最后一行是:

2022-01-15 10:46:38 66017 18

原创 关闭Win10自动更新

垃圾Win10总是偷偷摸摸自动更新,网上尝试了各种关闭办法都无效,最后找到一个软件,可以一键直接关闭Win10更新,关机时瞬间清爽了。https://download.csdn.net/download/mmhh3000/16618604

2021-04-11 15:39:05 199

原创 AD中给大电流开窗时把顶层动态铺铜Polygon变成阻焊层静态Region的方法

画大功率PCB时经常要用到开窗功能,目的是增加过电流能力。需要在阻焊层(Sold mask层)画上线或铺铜,工厂生产时被画线的地方不会加阻焊油,最终效果就是铜皮开窗,并会喷上锡。 例如以下位置: 通常的做法是把顶层铺铜直接复制到阻焊层,但是因为规则设置的不一样,直接复制到阻焊层后不会产生避开螺丝孔的效果,做出来会缺一片阻焊,效果不好。如下:想避免这个问题,就不能用动态铜ploy,而要先变成静态的Region才行。方法如下:首先在...

2020-09-21 19:17:11 5874 2

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

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

2020-03-07 12:25:57 23998 1

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

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

2020-02-27 13:19:20 10216

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

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

2019-12-24 22:47:11 4954

原创 实现STM32F405的串口IAP

STM32串口IAP过程简介IAP包括两部分程序:BootLoader和Application(用户程序)。IAP的原理是STM32上电后默认从0x8000000地址开始执行,所以在0x8000000到0x08003FFF这一段放BootLoader程序,大小为16K。BootLoader程序是用下载器烧录进去的,本文档不做详细介绍。上电后BootLoader运行起来,会在一定时限内(...

2018-12-29 17:43:04 3830

原创 OSAL移植到STM8

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

2018-11-09 13:56:27 3383 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 scan-path reliability test. The utility or debugger ...

2018-06-17 14:12:57 5057

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

使用MPS的MP2565芯片,电源输入:24V, 输出12V 1A和5V 1A,根据手册上推荐的走线和参数进行PCB投板,焊接回来后上电听到明显电感线圈的“滋滋”噪声,用示波器交流模式测量输出电压,是个三角锯齿波,峰峰值有2V左右,明显达不到设计要求。电路原理图如下:查看该波形感觉是DC-DC有自激嫌疑。用示波器测量SW引脚,发现输出波形是高频振荡一会后,被迅速关断,然后又重启振荡,经过电感滤...

2018-06-17 12:54:33 11029

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

转载自 RFsister创客射频空间有关扩频通信技术的观点是在1941年由好莱坞女演员Hedy Lamarr和钢琴家George Antheil提出的。基于对鱼雷控制的安全无线通信的思路他们申请了美国专利#2.292.387。不幸的是当时该技术并没有引起美国军方的重视,直到十九世纪八十年代才引起关注将它用于敌对环境中的无线通信系统。短距离数据收发信机中的典型应用

2018-01-05 09:44:32 2413

原创 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&fa43d42b-25b5-4a42-fe9b-1634f450f5ee=True点击打开链接补丁很小,大

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

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

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

2017-12-22 09:38:59 964

原创 CentOS7中安装Xampp5.6.32

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

2017-11-30 11:25:03 1093

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

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

2017-11-29 23:16:13 671

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

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

2017-10-16 14:12:43 1451

原创 CAN总线中继的feedback suppression

做CAN中继时,如果不加缓存逻辑,可以使用两个廉价CAN收发器进行背对背连接,在电路上就形成中继效应时。但是,不可以像RS232芯片那样直接交叉TX-RX&RX-TX,这是因为CAN收发器内部有闭环反馈。如图所示,总线的信号要反馈到RX上进行实时的监控,就相当于TX要反馈给RX,这样才形成了CAN总线特色的总线仲裁和ACK应答等机制。这种机制要求输出高电平时,由其他控制器决定是否响

2017-07-07 13:35:08 1047

原创 CC2541程序向CC2540移植

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

2016-10-21 16:42:29 3450

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

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

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

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

STM的硬件I2C一直被各种吐槽,实际上只是用起来比较复杂而已,难点主要是在作为Master时的数据接收上,作为Slave时的数据发送没难度,正常用。重点是要真正掌握它里面设计的那个Data shift register和Data register,后者是前者的数据存储,    作为Master时的数据接收,I2C发送的ACK与STOP按接收长度不同要导致多种处理方式,稍不留神就会被绕晕。

2016-08-11 14:58:09 11577 3

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

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

2016-04-11 17:43:20 16097 5

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

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

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

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

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

2016-04-07 10:51:43 12824 3

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

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

2014-12-26 15:56:35 7849

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

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

2014-12-01 10:48:13 4177 1

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

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

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

原创 ARM指令ADR和LDR浅析

    LDR指令本身是数据读取,将内存中的值载入到寄存器中,因为ARM的MOV指令不直持由内存直接向寄存器中传数。LDR指令的这个含意是比较容易理解的。例如,LDR R0, _START ;指将_START标记的内存位置的值载入到R0。但是,ARM汇编器又为LDR赋予另一个伪指令含义:用于地址读取。这完全是两种不同的应用,但都是用LDR表示,所以很容易混淆。用于地址读取,就是指将

2014-10-08 15:56:27 1648

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

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

2014-09-21 14:29:33 17101

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

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

2014-09-18 09:50:23 13342

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

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

2014-09-13 18:25:11 3017

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

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

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

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

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

2014-08-13 17:19:38 11207 3

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

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

2014-07-25 14:08:42 10656 2

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

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

2014-07-11 08:58:36 13180 3

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

http://hi.baidu.com/wangmingshuo/item/609b2bf87e97ed3e753c4c4312345678910111) public   interface   Handler{     public   void   Hello(); }      2) i

2014-05-29 18:29:59 994

原创 浅谈LDO

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

2014-05-05 15:55:27 2617

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

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

2014-03-17 10:59:12 11585

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

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

2014-03-16 17:40:49 2347

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

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

2014-03-14 17:57:57 4337

msicleanup.zip

Windows Install clean up

2022-01-15

关闭Win10自动更新软件.rar

关闭Win10自动更新

2021-04-11

BleSensorTag-debug.rar

TI官方的给CC2541做OAD升级用SensorTag在ios上比较好用,但是在Android版本上一直有问题,本次上传Android版SensorTag可以用于OAD升级。注意.bin文件要放在手机根目录下的Download目录里面,不能放在其他目录下。

2019-10-25

空空如也

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

TA关注的人

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