自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

重拾童真

人生唯一可以预知的,就是它的变化莫测。

  • 博客(64)
  • 资源 (1)
  • 收藏
  • 关注

原创 环形队列的简单理解

2. 那环形队列初始化状态肯定是空的,空的时候,就是head=tail=0的状态。那满的状态是啥样的呢,假定数据从一开始一直写入,从来没有读取(tail一直为0),按道理应该是转一圈head=tail=0的时候,可是这样就无法分清楚是满还是空。这样当head再增加一个的时候就认为队列满了。如果用单纯的head+1=tail,肯定不正确,因为比如MAXN=10,当队列满的时候head为9(9为下一个要写入的位置,而并没有写入数据)。有的说head指向下一个要写入的位置,tail指向下一个要读取的位置。

2024-04-12 15:04:14 267

原创 Altium Designer 覆铜的时候3D模型下面无法覆铜的问题

之前产品曾经发现过这个现象,更新覆铜Repour的时候发现覆铜有好多缺口,测试其他的pcb文件则没有这个现象。具体有关以为是AD某项设置或者bug。经过研究发现,这些缺口和器件的3D部分能够吻合。经过研究发现是由于在制作PCB封装的时候,画的器件边框应该在机械层1,结果放在了Keepoutlayer层造成的(TOP Overlayer也画了,机械层1和Keepoutlayer层的颜色是一样的)。

2024-02-05 16:54:29 413

原创 MC34063异常发热分析

MC34063和电感异常发热的调查

2024-02-05 16:20:59 1044

原创 Modbus通信无法正确接收应答的问题处理

经过掉调查,可以认为,是由于在串口发送时,RXD被拉低,造成对接收的串口数据,传过来时,没有正确识别起始位,造成的。应该在起始位前有一段足够长的高电平。之前没有发现是由于发送和应答之间按照modbus要求,最少要满足3.5个字符的时间间隔。而此次的中断设备,应答速度极快,刚接收完马上就应答数据,造成modbus主设备没有正确接收数据。

2024-01-23 15:44:48 460

原创 STM32 CubeIDE 仿真时怎样把变量添加到监视窗口。

方法2:在右侧窗口切换到“Expresstions”标签。复制变量名到“Add Watch Expresstion”然后回车即可。方法1:在变量上面右击,选择“Add Watch Expresstion...”

2023-04-27 16:29:35 1009

原创 Altium Designer 原理图库点击切换元器件卡顿的问题

Altium Designer 原理图库点击切换元器件卡顿的问题。器件的属性 参数里面 Paremeters 有好多选项,其中有supplier。删除这些参数后,恢复正常。

2022-11-03 09:47:11 2678

原创 Altium Designer 原理图元器件的字体批量修改

工作中发现有的原理图中元器件的Pin脚字体为黑体,斜体。看起来比默认的宋体漂亮一些。于是想把所有元器件的管脚定义名称改为黑体。在网上搜索,都是在原理图中修改。想了下肯定有哪里的设置可以批量修改这个,因为我发现。比如A.sch中的元器件Pin脚字体是黑体。B.sch中为宋体。我把A中的元器件复制到B中,元器件的字体就会变为宋体。反之亦然。推断这个设置估计和原理图的模板有关。最后找到了,下面的设置可以实现批量修改。点击"Change System Font"就可以设置这个字体。如果在原理图模板中做.

2022-03-21 13:29:45 4251

原创 STM32G030C8+STM32 CubeIDE Flash模拟eeprom

目录1. 准备工作2. 移植代码1. 准备工作1. 首先从在ST官网找到stm32G030c8 网页,点开documentaions标签 搜索“eeprom”STM32G030C8 - Mainstream Value-Line Arm Cortex-M0+ MCU with 64 Kbytes of of Flash memory memory, 8 Kbytes RAM, 64 MHz CPU, 2x USART, timers, ADC, comm. I/F, 2-3.6V - S

2021-11-18 11:25:07 3083 2

原创 硬件STM32G030C8 +STM32 CubeIDE使用经历

由于STM32F103系列价格飞涨,因此开发新产品的时候选了一个比较新的单片机STM32G0系列的,立创上面供货充足,价格便宜。软件开发平台也是用ST官方的IDE,之前一直使用库函数的形式,此次使用HAL库进行开发。1. 图形化的配置界面非常方便,自动生成初始化代码。在调试串口接收的时候费了一点力气,参照了 这位朋友的文章【CubeIDE】STM32 HAL库史上最详细教程(一):UART串口收发_Nack'BT的博客-CSDN博客博主能力有限,有错误望大佬指出0x00 文章内...

2021-11-16 15:03:11 1316

原创 Altium Designer 原理图编译 警告 Adding items to hidden net GND 的简单分析

问题现象:在编译原理图后,发现有两个 “Adding items to hidden net GND”和 “Adding items to hidden net VCC”的警告。问题调查:在绘制原理图时,需要放置一些门电路。在元器件库中门电路中的VCC和GND都隐藏起来,关联到VCC和GND了。经过查询,网上的处理方式大多是,不用管这个警告。而此时我发现,原理图更新到PCB时,有一个与门的芯片的电源和地并没有连接到VCC和GND。我是用的与门芯片为74H08,,把芯片引脚的VCC和GND

2021-02-08 10:34:20 9749 1

原创 STM32 cubeIDE 仿真 提示  Error in final launch sequence:  Failed to execute MI command:错误

使用STM32 cubeIDE连接板子下载程序,仿真,都会提示Error in final launch sequence: Failed to execute MI command:错误,搜索了半天也没有解决。忽然想到自己的板子意见设置了读保护和写保护。。。。使用工具解除读写保护后,仿真,下载都正常了。...

2020-11-11 14:05:23 10424 3

原创 使用STM32 CubeIDE建立工程,串行连接单色OCMJ4X8C-14 128*64屏幕

一直使用MDK和IAR做STM32 的开发工作,也一直关注网上对于免费IDE的推广,最近用手头的一个简易开发板连接一个液晶小屏幕测试一下。

2020-11-09 16:40:44 568

原创 IAR 使用优化代码后,while定时循环不能退出,不能打断点的问题。

由于STM32使用的Flash吃紧,使用了IAR的优化代码功能。默认时None,优化后选择Medium。优化后,Code显著减小,大约20%。优化完后,起初发现调试程序发现程序里面的while 语句后面不能打断点。搜索后,推断可能和优化代码有关。取消优化后,果然可以打断点了。这倒是问题不大。再后面试验中又发现莫名的卡在while里面不能出来。过了超时时间也不能跳出。又是搜索后,发现依然和优化代码有关 ,在单纯空循环的语句中,如果什么都没有。会被优化掉。可以在空循环的里面增加nop语句

2020-08-13 16:47:55 851

转载 网络变压器的疑问解释-转载

网络变压器内部是个鲍勃史密斯电路,初级的中心抽头,在跟PHY芯片的输出连接时,有的接了电源,有的没有接。到底什么时候接,什么时候不接,网上的解释如下:在以太网设备中,通过PHY接RJ45时,中间都会加一个网络变压器。有的变压器中心抽头接电源,有的又接电容到地。而且接电源时,电源值又可以不一样,3.3V,2.5V,1.8V都有。这个变压器的作用到底是什么呢?1、中间抽头为什么有些接电源?有些接地?这个主要是与使用的PHY芯片UTP口驱动类型决定的,这种驱动类型有两种,电压驱动和电流驱动。电压驱动的就要接电源

2020-08-06 10:12:41 495

原创 USART_FLAG_TC 与 USART_FLAG_TXE之间的 区别

在工作中用到stm32 的串口和上位机通讯,应答完上位机后,马上重启stm32.上位机总是无法接收到串口信息。仿真打断点,发现也执行了串口发送程序。忽然想起可能和这个等待数据是否发送完成的标志有关。于是搜到,https://blog.csdn.net/tanguohua_666/article/details/90770693这篇文章。果然,自己使用的是USART_FLAG_TXE。造成串口数据还没有从TX引脚发出就执行了重启命令。NVIC_GenerateSystemReset();//重启.

2020-07-13 13:21:40 588

原创 在代码 对 stm32 写保护的操作

在工作中遇到了需要对stm32的部分flash中的代码进行写保护的需求。一开始调查发现可以使用stm32的官方软件 stm32 stlink utility或者更新版本的stm32CubeProgrammer对指定的flash页进行写保护操作。虽然用上面的方式可以达到目的,不过 为了生存部门的方便,我在网上搜寻能否在自动下载的时候把写保护的操作一起做了。因为现在生产部门使用的一种正点原子出品的。离线下载器,而这种离线下载器并不支持写入 写保护命令的功能(只支持读保护)。在紧急时刻..

2020-06-19 15:48:17 1100

原创 stm32的 IAR 工程升级库函数中遇到的问题

由于产品比较老,使用的stm32的库函数已经很老,有一些新的函数没有,打算升级到3.5.0。经过导入个人的.h,.c文件,官方的FWLIB库文件,以及CMSIS文件。经过编译,果然有很多错误和警告,一一排除后,最后遇到了一大堆的"Warning[Pe223]: function "__DSB" declared implicitly E:........\CMSIS\coresupport\core_cm3.h 1723 "在网上查询说是工程配置里面没有选择正确型号类型。可是看了下,自..

2020-05-28 14:07:53 867

转载 收藏:光电开关的 接线

http://www.360doc.com/content/16/0210/11/833562_533570159.shtml

2019-04-01 10:12:31 2649

转载 转载:Python安装PyQt5

是在命令提示符中 CMD输入pip命令[PyQt]在Windows系统中安装PyQt51. 安装PyQt5PyQt5的官方网站是https://www.riverbankcomputing.com。截至目前最新版本是5.11。 安装PyQt5有两种方式:可以下载最新源码进行编译安装,也可以使用pip install进行在线安装。 推荐使用pip install命令进行在线安...

2019-03-27 15:06:01 1965

转载 转载 如何用示波器进行UART串口数据分析

http://www.elecfans.com/instrument/722026.html这个是示波器一段的图 上面的数据(原文件)就是这段的Y的坐标单位是 电压值 VX的单位是 时间 S 都是几十uS的 从这个可以分析出来 是多大波特率的UART的格式 可以通过程序设置 有些会在停止位之前有一个奇偶校验之类的 停止位也不一定只是一个单位大小 可以设置为1、1.5、2等...

2019-03-20 10:53:01 2629

转载 ​ 转载:C语言中判断两个字符串是否相同的方法

C语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子:  #include <stdio. h>#include <string. h>void main (void);void main(void){    char* str_1 = "abc" ; char * str_2 = "abc" ; char*...

2018-11-16 10:34:37 3501

转载 转载: IAR编译器 生产的文件什么作用。

Dep文件   ide所使用的文件依赖信息,这个会自动生成的,可以删掉Ewp文件   工程文件/project,包含代码,编译,链接选项等,不包含调试设置等信息,这个不能删Ewd文件   工程调试设置,保存的是IAR设置中的Debugger选项,这个最好不要删Eww文件    解决方案/工作空间/workspace,可以直接双击打开,可以放多个工程文件,最好也不要删...

2018-11-02 16:21:17 452

转载 DCDC芯片里面的分类有synchronous 和non-synchronous,请问这两者的区别是什么

转载:https://e2echina.ti.com/question_answer/analog/power_management/f/24/t/14683 同步与非同步的区别如下:请参考附件:

2018-08-22 11:32:22 3706

原创 更新BeagleboneBlack板子中EEPROM中的ID,使用mm内存修改命令

      购买的原装BBB的板子,EEPROM中写入了板子的ID号。自己新焊接的板子,写入BBB官网下载的镜像,会提示不能通过,或者不能启动系统。可以通过修改uboot源码,去掉校验ID的逻辑,或者通过下面的方式,在新的板子上复制原装板子EEPROM的内容的方法。基本流程如下:1. 在BBB原装板子上,从SD卡启动,进入Uboot,然后读取EEPROM里面的内容。暂时保存。读取EEPROM内容的...

2018-05-17 10:14:45 2141 3

原创 Altium Designer PCB导出step 3D文件时遇到的问题

在PCB导出 step文件的时候,发现导出的step文件总是和在AD中3D预览的不相符预览中的定位孔和圆弧边缘如下:生成的3D文件,打开后显示如下:完全失真了。研究了一下,原来是由于在PCB中定义板子外形时,采用了根据板子这样生成的板子,圆弧很好看,不过会造成导出step文件的时候,文件有缺陷,应该是ad13版本的bug吧,不知后面的版本

2017-11-13 17:24:02 26551

原创 32.768KHz晶振的使用心得

项目需求,使用少量器件搭建一个方波发生电路。找到了一个这样的电路,两个非门和阻容,晶振。图中用两个与非门代替非门。搭好电路后,发现两个问题:1. 输出不能发出方波,然后测量发现晶振不能起振。示波器表笔夹到晶振时,测量有输出,晶振起振。2. 输出的方波,上升沿和下降沿都有很多干扰杂波。于是更换不同的C11,20p,33p,10p,100p。都不能正常起振。不得要领。

2017-11-09 15:42:29 19525 3

转载 verilog中的timescale用法

timescale是Verilog HDL 中的一种时间尺度预编译指令,它用来定义模块的仿真 时的时间单位和时间精度。格式如下:`timescale 仿真时间单位/时间精度注意:用于说明仿真时间单位和时间精度的 数字只能是1、10、100,不能为其它的数字。而且,时间精度不能比时间单位还要大。最多两则一样大。比如:下面定义都是对的:`timescale 1ns/1ps

2017-11-06 22:01:07 14771

原创 AM335X连接LAN8720的调试过程

在调试过程中遇到一些问题,1. 硬件原理图的问题 8720可使用两种外部晶振 25M和50M,这两种晶振需要通过引脚配置电平来决定的!而并非自适应。      所以如果外部使用50M晶振的话,LED2的点亮方式应该是上拉,这样芯片工作在ref_clk in mode 模式,外部晶振同时给7820和mac控制器提供时钟信号。              如果外部使用25M晶

2017-11-03 11:28:12 4299 1

转载 配置嵌入式linux的ip的方式

1. ifconfig ethX ip netmask mask 的方式重启后会丢失, 修改配置文件的方式可以重启后保持ip,在网上搜索,发现在linux 的etc没有sysconfig文件,后来发现是这个原因。/etc/sysconfig/*是红帽系统下服务初始化环境配置文件,我用的ubuntu就没有这个文件夹,只能对各个服务的存放位置分别寻找,比如centos里的/etc/

2017-05-08 09:20:40 3513

原创 VirtualBox中的Ubuntu访问宿主windows的共享文件夹 没有访问权限的问题

把普通用户名加入到vboxsf之中。因为你的用户名不在vboxsf这个用户组。下面添加boarmy到vboxsf这个用户组。运行:  sudo adduser boarmy vboxsf发现运行这个之后,重启 可打开 /media/s_f  文件夹,可是看不到东西,然后又重新删除共享文件夹,再新增加,重启后可,可以看到里面的文件了。

2017-04-26 13:42:15 835

原创 Altium Desinger 选择性导出BOM

在导出BOM的时候,原理图中的TestPoint 不想导出,不然还需要再删除,有没有方法不导出呢。在元器件属性中寻找了一下,发现有设置选项,如下所示:原理图 元器件属性中的 Type 选项,默认是“Standard”,修改Standard(NoBOM)再导出BOM的时候,发现这个器件已经不再导出的BOM里面啦。

2017-04-17 10:25:45 3931

原创 Altium Desinger 提示 Failed Match ...componets using Unique Identifiers的原因

从原理图更新到PCB有时候会遇到 提示平时没有注意英文含义,直接点击yes,后也可以正常使用。后来有一次,发现Failed to Match的数量特别大,心里担心哪里出问题,就仔细看了一下英文意思。在Altium Designer 里面优先使用Unique Identifier 来识别,匹配元器件。这里提示标识有匹配失败的元器件。点击Yes后就会用componets 来匹配元器

2017-02-16 10:57:16 6165

转载 Linux之Debian执行apt-get update提示”没有可用的公钥”解决方法

Linux之Debian执行apt-get update提示”没有可用的公钥”解决方法010203040506070809101112131415161718192021222

2016-11-15 17:17:12 1804

原创 使用Keil performance Analyzer 的问题

最近学习调度器的使用,使用keil查看软件仿真时候的cpu占用率,有些问题。比如要添加“”“SCH_Add_Task”这个函数到查看列表,双击后在Define的框内出现,然后点击Define,出现提示错误的窗口  error 31:illegal qualifier 。提示非法字符。没明白什么意思,后来尝试把Definle里面的\\2_01_12g\SCH51\  

2016-10-14 10:45:50 3583

转载 定义和声明

1. 变量的定义、声明变量的声明有两种情况:一种是需要建立存储空间的。例如:int  a。在声明的时候就已经建立了存储空间。这种声明是"定义性声明(defining declaration)",即我们平时所说的“定义”。另一种是不需要建立存储空间的,只是告诉编译器某变量已经在别处定义过了。例如:extern int a。其中,变量a是在别处定义的。这种声明是"引用性声明(refernc

2016-10-10 14:52:35 400

转载 AM335x uboot spl分析

标题:AM335x uboot spl分析2012-09-07 21:43:08AM335x uboot spl分析 芯片到uboot启动流程    ROM → SPL→ uboot.img 简介    在335x 中ROM code是第一级的bootlader。mpu上电后将会自动执行这里的代码,完成部分初始化和引导第二级的bootlade

2016-09-13 13:58:30 654

原创 阅读《鸟哥的Linux私房菜》中 14章中运用ll命令 不识别的问题解决

在自己电脑上执行LL命令提示不支持命令,在网上查询后,发现LL 其实是ls -l的别名,所以ll-d   也就是ls -l-d啦!

2016-09-12 16:13:50 490

原创 终于知道了printf()为什么这么写!

从接触编程到现在一直对printf的格式一知半解,知道怎么用,可是有时候又忘记怎么写(做单片机嵌入式开发,不太常用这个printf)。今天看《C程序设计语言》里面写的几句话,终于知道了,原来里面的%   d 什么的,到底为什么存在。先写一个例子:printf(“%d\t%d\n”,a,b);这句就是输出a 和b,a后面是一个制表符的空格 输出b然后换行。书中解释printf()

2016-09-08 16:54:16 1359

转载 linux 下 apache启动、停止、重启命令

基本的操作方法:本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况apahce启动命令:推荐/usr/local/apache2/bin/apachectl start apaceh启动apache停止命令/usr/local/apache2/bin/apachectl stop   停止apache重新启动命令:/

2016-08-29 15:37:49 34571

原创 为什么执行一些当前目录的程序要加./

一直以为加上这个“./”是运行的意思,后来发现运行父目录里面的程序是“../b”(假设在父目录下有程序b)。才觉得./ 可能不是运行的意思。于是在网上查找。"直接敲打程序名没用,为啥要加./啊"正确解答:因为命令是放在当前目录之下,而不是在搜索路径里,你直接执行命令是找不到的,必须./ 表示在当前目录下执行该命令。把程序所在的目录加到系统变量后,就可以不用加./了,可以在任意目

2016-08-24 10:04:47 952

Jlink V8 固件升级

Jlink v8 固件损坏,灯不亮的修复。不能固件烧写的解决方法

2015-05-11

空空如也

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

TA关注的人

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