自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 st-link is not in the DFU mode

Keil中使用stlink烧录代码时,提示需要更新驱动,点击更新后,提示:“ST LINK is not in the DFU mode plesse restart it”,重新拔插之后,还是同样的问题。

2025-03-20 15:04:02 271

原创 单总线协议(1—Wire bus)【DS2431】

1—Wire 协议定义了复位脉冲、 应答脉冲、写0、写1、读0和读1时序等几种信号类型。所有的单总线命令序列(初始化ROM 命令功能命令)都是由这些基本的信号类型组成的。识别单总线器件(ROM 命令)单总线器件交换数据(功能命令)初始化单总线器件(初始化)

2025-01-02 13:42:11 261

原创 char SendBuff[1000] = {0};memset((void *)SendBuff,0x20,10000);在C语言中,这样会有什么潜在风险

【代码】char SendBuff[1000] = {0};在C语言中,这样会有什么潜在风险。

2024-12-25 17:06:22 159

原创 【HAL库】STM32F105VCTx多通道ADC+DMA方式的【STM32CubeMX】配置及代码实现

使能连续转换模式 hadc1.Init.ContinuousConvMode = ENABLE;,程序才会一直进 DMA中断函数DMA1_Channel1_IRQHandlerADC校准可以使ADC采集值和 Vref参考值(基准电压)接近。但是f4系列不支持。/* 校准ADC */

2024-11-13 13:53:43 370

原创 【HAL库】STM32F427ZGTx多通道ADC+DMA方式的【STM32CubeMX】配置及代码实现

【代码】【HAL库】STM32F427ZGTx多通道ADC+DMA方式的【STM32CubeMX】配置及代码实现。

2024-11-13 13:52:06 285

原创 c语言中标签的用法

尽管C语言允许使用标签,但现代编程实践通常建议限制goto语句的使用,并优先使用结构化控制流(如循环和条件语句)来组织代码。switch语句中的case和default标签是处理多分支条件的合法且有用的方式。

2024-09-01 15:28:57 974

原创 变量声明和变量定义的区别

变量定义通常放在**.c文件**中。这是因为定义变量时,编译器需要为变量分配内存,而这应该在源文件中进行,以便在编译时有具体的实现。定义通常不会出现在头文件中,因为头文件是为了声明和共享接口,而不是定义实现。示例(在file1.c// file1.c// 定义变量2. 变量声明变量声明通常放在**.h文件**中,尤其是当你需要在多个源文件中共享这个变量时。在头文件中使用extern关键字声明变量,可以让其他源文件知道这个变量的存在,并且在编译时能够正确链接到定义。示例(在file1.h。

2024-09-01 12:53:12 574

原创 结构体struct的大小计算

所以对于 S1 结构体大小为 2*3=6,至于为什么第二个 char,多的那个字节不丢到,就是遵循第三个原则,就是结构体大小结果要为成员中最大字节的整数倍。而对于 B,先不要管 A a,也就是先去掉 A a 成员结构体 B 算出其为 8,所以最后结果为 8+16=24;再看一个:就是当结构体成员变量是另外一个结构体时,只要把结构体中成员为另一结构体作为整体相加就行。因为 int 占 4 个,而 char 已经占了一个,不够,所以那三个只能多余占位。注意: 为什么 仅仅改变了结构体成员的顺序,结果不一样?

2024-08-06 18:52:30 561

原创 在C语言中,联合体或共用体(union )是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。

在C语言中,union是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。这意味着union中的所有成员共享同一块内存空间,因此它们之间会相互覆盖。在你给出的union由于union的特性,这三个成员中的任何一个都可以被存储在union分配的内存空间中,但一次只能存储一个成员的值。这意味着,如果你给type_16赋值,那么type_u8和type_u16的值将会变得不可预测(因为它们共享相同的内存位置),反之亦然。

2024-08-06 18:03:10 323

原创 AD7606采集控制

过采样:其效果就是在ADC之后增加数字滤波器的功能。

2024-07-25 00:18:14 366

原创 结构体(struct)和枚举(enum)有什么区别

通常用于表示一组相关联的数据,如表示一个学生的信息(姓名、年龄、成绩等)或者表示一个车辆的属性(品牌、颜色、型号等)。- 结构体是一种用户自定义的数据类型,允许你组合多个不同类型的变量(成员变量)到一个单独的数据结构中。- **访问方式**:结构体的成员变量可以单独访问和修改,枚举常量一般作为整数常量使用,不可修改。- **用途不同**:结构体用于组合多个不同类型的变量,枚举用于定义一组有意义的常量。- **成员类型**:结构体的成员可以是任意数据类型,枚举的成员是整数常量。

2024-07-14 19:44:19 815

原创 进制数相关

在数据面前加前缀表示不同的进制数。不同进制数的输入和输出。

2024-07-14 12:20:04 189

原创 IIS接口协议

I2S = Inter-IC Sound = Integrated Interchip Sound = IIS,是飞利浦在1986年定义(1996年修订)的数字音频传输标准,用于数字音频数据在系统内器件之间传输,例如编解码器CODEC、DSP、数字输入/输出接口、ADC、DAC和数字滤波器等。在WS变化后的第一个SCK脉冲,IIS协议定义三根信号线:时钟信号SCK、数据信号SD和左右声道选择信号WS。SCK:模块内的同步信号,从模式时由外部提供,主模式时由内部产生;√ WS=1,表示选择右声道。

2024-07-11 00:42:57 979

原创 三极管相关

当p型半导体一边接正极、n型半导体一边接负极时,则为正偏,反之为反偏。

2024-07-08 13:19:55 264

原创 电源纹波相关

什么是纹波?什么是噪声?这种叠加在直流稳定量上的交流分量就称为纹波。

2024-07-07 21:01:19 258

原创 PCB常见布线规则总结

PCB板上预划分数字、模拟、DAA信号布线区域。 数字、模拟元器件及相应走线尽量分开并放置于各自的布线区域内。 高速数字信号线走线尽量短。 敏感模拟信号走线尽量短。

2024-07-05 08:54:17 585

原创 Keil编译错误总结

将不能打开的文件所在路径按图中步骤添加到路径即可。

2024-04-23 13:12:02 1862

原创 AD17原理图模块化设计时修改子图名称后和总图失去联系

此时只需要将总图中,对应已修改的子图的框图的名称改为和子图一样即可,改完记得重新编译工程。

2024-03-08 16:49:53 397

原创 陶瓷气体放电管防雷管

陶瓷气体放电管是防雷保护设备中应用最广泛的一种开关器件,串联于线路中,可用在交直流电源、各种信号电路的防雷,都可以用它来将雷电流泄放入大地。它是把一对放电间隙封装在充以放电介质(惰性气体)的陶瓷管中构成的。按电极数分,有二极放电管和三极放电管(相当于两个二极放电管串联)两种。其外形为园柱形,有带引线和不带引线两种结构形式(有的还带有过热时短路的保护卡)

2024-03-08 16:07:52 1089

原创 漏电保护插头

这是一个漏电保护电路。1.按下脱扣线圈220 V电路导通,经过桥式整流电路给监控芯片供电,监控芯片开始工作,监控互感器的电流。2.按下测试开关K1,K1所在电路导通,此时零线和火线经过互感器的电流不相等,互感器感应到后输出电压到监控芯片的输入检测引脚,经过芯片内部电路放大锁存后到输出控制引脚,激活SCR门极使SCR导通,使脱扣线圈通电,利用电磁线圈原理弹开开关,将220V电路断开。SCR(硅控整流器,可控硅)ZCT零序电流互感器。

2024-03-06 23:16:06 354

原创 单片机中SPI的速度设置

以STM32F042F6P6为例,最高主频为48MHz,除以SPI的分频系数就是SPI的时钟频率。下图是拿示波器打SPI时钟线SCLK测到的信号。

2024-02-05 12:01:38 954

原创 关于示波器的使用

CURSOR,光标:用来测量波形的指示光标,有垂直和水平两个方向,比如要手动测量一个波形的幅值或者周期,就将两个光标调整到合适的位置,示波器会给出对应的值。measure,测量:一般用来调出波形的基础参数,比如峰峰值、最大值、最小值、幅度、频率等参数。horizontal position:调整波形的水平方向的位置,即波形左右移动;vertical position:调整波形的竖直方向的位置,即波形上下移动;),触发类型(边沿、脉冲宽度),触发源(通道一、通道二);有波形,锁定不了位置的时候使用、

2024-02-05 11:54:39 1388

原创 关于字节(Byte)和位(bit)的换算和常见的数据传输

1kBps=8kbps即1kByte/s=8kbit/s?B=Byte(字节),b=bit(位)per second即每秒。

2024-02-04 11:45:32 600

原创 stm32CubeMX,配合Keil,使用HAL库进行串口通信

在usart.c文件中添加以下函数//重定向printf1至uart4的demo在usart.h文件中添加以下两个头文件和prinf1函数的声明然后即可在main.c中调用printf1()函数。记得在main.h文件中加上#include "usart.h"的头文件。while (1)!!\r\n");//低电平点亮绿灯编译,下载到板卡,运行成功!!!

2024-01-09 20:57:10 1121

原创 使用keil5IDE调试时,C语言调试技巧汇总

如果后面的代码比其他代码呈现浅灰色,说明宏定义没有被声明,或者没生效,而且通过更进选项(go to definiton)也找不到定义的位置;反之,颜色应该和其他代码一致,并且可以更进到定义的位置。#if和#endif的匹配。

2024-01-09 19:36:44 560

原创 keil工具使用总结

edit。

2024-01-04 15:16:03 3478 1

原创 keil5调试工具选择界面选项注意事项

在选择好调试工具后,要点开Settings选项卡,根据接口选择JTAG模式或者SWD模式。点开后如下图,根据目标板卡的接口选择JTAG或者SW。

2024-01-04 14:38:08 602

原创 FPGA的几种下载模式对比

sof掉电丢失jic掉电不丢失。

2023-12-04 11:22:37 188

原创 推挽输出(Push-Pull)和开漏输出(Open-Drain)

概念推挽(push-pull)输出是由两个MOS或者三极管组成,两个管子始终保持一个导通,另一个截止的状态。不需要上拉电阻,不可“线与”,不可电平转换,推挽电路输出高电平时叫推,是拉电流;推挽电路输出低电平时叫挽,是灌电流;

2023-10-26 17:29:31 2072

原创 多位数码管

当多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线(a-dp)全部是连接在一起的,即是共享的(所以多位数码管可以静态显示,但是显示时要么只显示一位数码管,要么多位同时显示相同内容),独立的公共端可以控制多位一体中的哪一位数码管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们把公共端(共阳或共阴)叫做“位选线”。如图中的1H和2H,就是位选线,图中为共阴数码管,所以这两个位选线为低电平,哪个数码管就会点亮,如果都是低电平,则都会亮。单位数码管引脚示意图。

2023-10-26 15:16:08 438

原创 数字电路常用逻辑门符号

2023-10-23 16:07:51 1302

原创 51单片机16位计数器初值计算(重装载定时器)

CPU执行一条指令所需要的时间称为指令周期,它是以机器周期为单位的。通常,包含一个机器周期的指令称为单周期指令,比如 MOV指令,CLR指令等。:在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。一个状态周期等于两个时钟周期。机器周期=6个状态周期=12个时钟周期。最大定时时间=(时钟周期*12)*65536=65.536ms(65536为16位计数器得到,即2^16=65536)时钟周期是单片机的基本时间单位,两个振荡周期(时钟周期)组成一个状态周期。

2023-10-21 15:51:42 1022

原创 51单片机特殊编程

* SCON */这是在声明一个位变量,这个变量的名字是SM0,并且它被初始化为SCON寄存器的第7位。在C语言中,'sbit'是Keil C51编译器的一种特性,用于访问特定的位。这个声明用于直接访问和控制某个特定的位,而不必关心或直接操作那个位的其余部分。这使得代码更简洁,更易于理解和维护。这里,'SCON^7'表示SCON寄存器的第7位。'^'是按位异或运算符,但在这里它被用作位域的标记,表示我们关心的是这个位。实际上,这个表达式的结果总是等于它自身第7位。

2023-10-20 15:53:07 918

原创 AT89S51和STC89S51下载方式的区别

宏晶国产STC单片机则具有串口ISP功能,可直接使用串口,将程序下载进单片机。即将USB转TTL的TXD接单片机的RXD,RXD接单片机的TXD。STC系列的单片机在上电的时候会执行在ISP FLASH的ISP程序。只要在串口上收到连续的0x7F,便会进入ISP模式。所以STC单片机下载程序时,需要先在计算机端程序中点下载,然后给单片机通电。另外STC单片机需使用宏晶专用的单片机下载程序STC-ISP下载。AT89S51系列单片机的ISP下载是通过P1^5、P1^6、P1^7、RST引脚来下载的,

2023-10-18 11:34:08 448

原创 Altium Designer PCB开窗(去除阻焊层)

在PCB界面选择Top/Bottom solder层,选这画线工具(不是布线),画需要开窗的走线。开窗效果如下图所示。

2023-10-13 11:46:22 7364

原创 关于事件和中断的学习总结

这张图是一条外部中断线或外部事件线的示意图。图中的红色虚线箭头,标出了外部中断信号的传输路径;图中绿色虚线箭头,标出了外部事件信号的传输路径。图中信号线上划有一条斜线,旁边标志20字样的注释,表示这样的线路共有20套。

2023-10-12 16:32:07 194

原创 STM32cubeMX中断响应优先级设置不了

如图,一开始以为是设置好抢占优先级后,响应优先级设置不了(下拉只有0一个选项),查资料才知道中断优先级是要分组的。

2023-10-10 18:27:59 1590

原创 关于STM32cubeMX外部中断调试的问题汇总

前言,在使用按键中断时,为了消除按键抖动,想在中断函数里使用延迟函数以消除按键抖动,但是直接在中断函数中使用延时函数,会导致直接就进不了按键中断。要想在按键中断中使用延时函数,就需要将系统滴答计时器的优先级设置的比按键中断高,所以做如下设置,重新生成代码即可解决。如图,默认的系统滴答计时器的抢占优先级是比中断线的优先级低的。

2023-10-10 17:03:06 1296

原创 LDO芯片和DC-DC芯片有什么区别?

LDO(low-dropout regulator)低压差线性稳压器,通过在输入和输出之间产生一个稳定的电压差来实现稳压。LDO通过调整电路管的阻抗变化使输出电压保持稳定,当输出电压由输入电压升高或负载电流减小,出现输出电压偏离设定值而升高的趋势时,通过负反馈使调整管的阻抗增大,降低输出电压使之恢复设定值而保持稳定。当输入电压降低或负载电流增大,出现输出电压偏离设定值而降低的趋势时,通过负反馈使调整管的阻抗减小,提高输出电压使之恢复设定值而保持稳定。由于是通过电阻调节,所以发热量就比DC-DC要大。

2023-09-08 16:24:21 388

原创 到底什么是奇偶校验?

串口数据格式首先注意这是两种校验方式,即一个奇校验,一个偶校验。发送端数据的最后一位增加奇偶校验位,使数据转化为二进制之后bit1的个数为奇数或者偶数,在接收端判定bit1的个数是否为奇数或者偶数的方法,由此校验数据在传输过程中是否准确;

2023-09-08 12:00:08 316

STC-ISP下载器驱动和软件

STC-ISP下载器驱动和软件

2023-10-18

USBASP下载器驱动和软件

USBASP下载器驱动和软件

2023-10-18

空空如也

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

TA关注的人

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