最近要设计一个电子枪线圈驱动电源,500Hz,峰值1~4A,三角波驱动。我用OCL 甲乙类功率放大电路,发现电感电流有比较大的滞后,和给定波形有较大的差异,请各位大神指点!怎么提高响应跟踪速度,和设定一致。线圈700uH,0.5欧姆电阻。
2025-12-26 16:03
很多人拿到STM32开发板后,不知道怎么使用CAN模块,不知道怎么正确的配置CAN模块的初始化,比如波特率,过滤ID,ID掩码mark,CAN接收,CAN发送中断等,本文就让我来详细的使用STM32的cubumx软件来一步步讲解如何设置CAN模块,并进行一个简单的CAN模块的接收和发送模版,最后通过串口和点灯来测试验证CAN模版的正确性!!!!!! 好了,话不多说了,直接上干货。 1。 打开STM32的Cubemx软件,新建一个工程 我是直接命名为CAN 2。选择外部晶振时钟源 选择HSE的这项 设置时钟树,这里选择25MHZ晶振 设为216MHZ最高 3。选择usart1串口 用作打印调试串口 4。 选择CAN1,这里要注意,阿波罗STM32F767开发板的USB接口和CAN1是共用的,需要用跳线帽选择,就是用CAN1就短接CAN接口,不能用USB 一定要注意,否则CAN1是调不通的,按照我上面进行跳线即可 下面设置成500k波特率 当然你可以设置为任何波特率,我选择500k比较常用 使能一个接收中断即可,发送用轮询发送,接收必须用接收中断。 5。设置代码生成选项 点击生成代码 6。打开KEIL工程 添加如下代码,主要是在can.c文件里封装好CAN接收和发送函数 /* USER CODE BEGIN 1 */ void setup(void) { CAN_FilterTypeDefsFilterConfig; sFilterConfig.FilterBank = 0; sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK; sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; sFilterConfig.FilterIdHigh = 0x0000; sFilterConfig.FilterIdLow = 0x0000; sFilterConfig.FilterMaskIdHigh = 0x0000; sFilterConfig.FilterMaskIdLow = 0x0000; sFilterConfig.FilterFIFOAssignment = CAN_FILTER_FIFO0; sFilterConfig.FilterActivation = ENABLE; if (HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig) != HAL_OK) { Error_Handler(); } if (HAL_CAN_Start(&hcan1) != HAL_OK) { Error_Handler(); } if (HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING) != HAL_OK) { Error_Handler(); } } void can_send(uint32_t id,uint8_t *data,uint8_t sz) { CAN_TxHeaderTypeDef tx_header; uint32_t mail_id; tx_header.RTR = CAN_RTR_DATA; tx_header.IDE = CAN_ID_STD; tx_header.StdId=id; tx_header.TransmitGlobalTime = DISABLE; tx_header.DLC = sz; if (HAL_CAN_AddTxMessage(&hcan1, &tx_header, data, &mail_id) != HAL_OK) { /* Transmission request Error */ Error_Handler(); } } void can_ack(uint32_t id) { CAN_TxHeaderTypeDef tx_header; uint8_t tx[] = {0x00}; uint32_t mail_id; tx_header.RTR = CAN_RTR_REMOTE; tx_header.IDE = CAN_ID_STD; tx_header.StdId=id; tx_header.TransmitGlobalTime = DISABLE; if (HAL_CAN_AddTxMessage(&hcan1, &tx_header, tx, &mail_id) != HAL_OK) { /* Transmission request Error */ Error_Handler(); } } /* USER CODE END 1 */ 发送CAN CAN过滤filter设置 7。主函数里添加如下测试代码 /* USER CODE BEGIN Header / /* @file: main.c @Brief : Main program body @attention Copyright (c) 2025 STMicroelectronics. All rights reserved. This software is licensed under terms that can be found in the LICENSE file in the root directory of this software component. If no LICENSE file comes with this software, it is provided AS-IS. / / USER CODE END Header / / Includes ------------------------------------------------------------------*/ #include \"main.h\" #include \"adc.h\" #include \"can.h\" #include \"usart.h\" #include \"gpio.h\" /* Private includes ----------------------------------------------------------/ / USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------/ / USER CODE BEGIN PTD */ /* USER CODE END PTD */ /* Private define ------------------------------------------------------------/ / USER CODE BEGIN PD */ /* USER CODE END PD */ /* Private macro -------------------------------------------------------------/ / USER CODE BEGIN PM */ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------/ void SystemClock_Config(void); static void MPU_Config(void); / USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------/ / USER CODE BEGIN 0 */ uint8_t tx[] = {1,2,3,4,5,6,7,8}; /* USER CODE END 0 */ /** @briefThe application entry point. @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MPU Configuration--------------------------------------------------------*/ MPU_Config(); /* Enable the CPU Cache */ /* Enable I-Cache---------------------------------------------------------*/ SCB_EnableICache(); /* Enable D-Cache---------------------------------------------------------*/ SCB_EnableDCache(); /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals / MX_GPIO_Init(); MX_USART1_UART_Init(); MX_ADC1_Init(); MX_CAN1_Init(); / USER CODE BEGIN 2 */ setup(); printf(\"阿波罗STM32F767 CAN收发模版\\\\r\\\\n\"); /* USER CODE END 2 */ /* Infinite loop / / USER CODE BEGIN WHILE / while (1) { / USER CODE END WHILE */ can_send(0x222,tx,sizeof(tx)); HAL_Delay(500); /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } /** @brief System Clock Configuration @retval None */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /** Initializes the RCC Oscillators according to the specified parameters in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 25; RCC_OscInitStruct.PLL.PLLN = 432; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLQ = 2; RCC_OscInitStruct.PLL.PLLR = 2; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /** Activate the Over-Drive mode */ if (HAL_PWREx_EnableOverDrive() != HAL_OK) { Error_Handler(); } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7) != HAL_OK) { Error_Handler(); } } /* USER CODE BEGIN 4 */ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef hcan) { CAN_RxHeaderTypeDefrx_header; uint8_trx[8]; if (HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &rx_header, rx) != HAL_OK) { / Reception Error */ Error_Handler(); } if ((rx_header.StdId == 0x111) && (rx_header.IDE == CAN_ID_STD) && rx_header.DLC == 2) { if(rx[0]==0x01) { HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, rx[1]); HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, rx[2]); can_ack(0x666); } } } /* USER CODE END 4 */ /* MPU Configuration */ void MPU_Config(void) { MPU_Region_InitTypeDef MPU_InitStruct = {0}; /* Disables the MPU */ HAL_MPU_Disable(); /** Initializes and configures the Region and the memory to be protected */ MPU_InitStruct.Enable = MPU_REGION_ENABLE; MPU_InitStruct.Number = MPU_REGION_NUMBER0; MPU_InitStruct.BaseAddress = 0x0; MPU_InitStruct.Size = MPU_REGION_SIZE_4GB; MPU_InitStruct.SubRegionDisable = 0x87; MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0; MPU_InitStruct.AccessPermission = MPU_REGION_NO_ACCESS; MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_DISABLE; MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE; MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE; MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE; HAL_MPU_ConfigRegion(&MPU_InitStruct); /* Enables the MPU */ HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT); } /** @briefThis function is executed in case of error occurrence. @retval None/ void Error_Handler(void) { / USER CODE BEGIN Error_Handler_Debug / / User can add his own implementation to report the HAL error return state / __disable_irq(); while (1) { } / USER CODE END Error_Handler_Debug / } #ifdef USE_FULL_ASSERT /* @briefReports the name of the source file and the source line number where the assert_param error has occurred. @paramfile: pointer to the source file name @paramline: assert_param error line source number @retval None */ void assert_failed(uint8_t file, uint32_t line) { / USER CODE BEGIN 6 / / User can add his own implementation to report the file name and line number, ex: printf(\"Wrong parameters value: file %s on line %d\\\\r\\\\n\", file, line) / / USER CODE END 6 / } #endif / USE_FULL_ASSERT */ 这里先设置好can setup 过滤 while循环里没500ms发送一次0X222的报文 打开PCAN查看 可以使用任何CAN TOOL工具,比如周立功USB CAN,我手上只有PCAN,所以用这个 8。打开串口助手,下面用串口助手点灯 CAN中断接收0x111 发送以下报文,LED0亮,LED1灭 发送以下报文,LED0灭,LED1亮 发送以下报文,LED0亮,LED1亮 发送以下报文,LED0灭,LED1灭 至此,已经正确的完成了CAN模块的收发功能,附件是我的工程模版,这里贡献给正点原子,是基于CUBEMX的HAL工程*附件:CAN.zip 详情见视频
2025-12-26 14:18
labview程序要用到keithley2636B,keithley3706A,要通过GPIB通信,这个需要哪些接线
2025-12-26 11:43
完成所有应用信息和版本信息的配置后,可将元服务提交至华为方进行发布审核。 登录AppGallery Connect,点击“APP与元服务”。 选择要发布的元服务。 左侧导航选择“应用上架 > 版本信息”下待发布的版本。 点击右上角的“提交审核”。 在弹出的窗口中确认版本号无误后,点击“确认”。 如果软件包中支持的设备类型范围大于配置支持设备时选择的设备范围,并且软件包支持PC/2in1设备而配置设备未勾选PC/2in1设备时,将提示您修改配置的支持设备。 如需修改,点击“确认”前往应用信息页面修改支持设备。 如不需要修改,点击“忽略”即可,不会影响元服务的审核。 提交成功后,可前往“应用上架 > 版本信息”下待发布的版本界面查看审核状态。 6.未通过审核:在“审核意见”栏查看审核结果。点击“审核报告”,可查看详细内容并根据报告内容修复问题。 若审核报告中的问题点涉及日志,可点击右上角“日志下载”,下载日志来帮助定位问题。 若您还有疑问,可点击右上角“联系我们”,选择与华为客服在线互动,或通过邮箱反馈疑问。 通过审核,但仍存在需要优化或修复的问题:在“审核意见”栏查看审核结果。点击“审核报告”,可查看详细内容并根据报告内容修复问题。为不影响版本后续正常发布,请在下个版本修复问题。 本文参考鸿蒙官方文档
2025-12-26 10:43
PWM模块播放音频,适合语音提示、简单音效等对音质要求不高的应用,是成本敏感的嵌入式系统提供音频解决方案 瑞萨RA6E2提供了PWM模块的音频播放功能。通过使用ADPCM模块来解码PCM数据。将该有符号PCM数据转换为无符号PCM数据,并使用PWM模块将转换后的无符号数据提供给音频回放。 瑞萨RA6E2提供的PWM模块被封装为一个Audio Playback System(音频回放系统)的栈(stack),由PWM驱动和DMA驱动构成。 下面通过实践来构建这一功能 一、FSP配置 1、模块使用 模块名称 使用方法 关键字 Audio Playback PWM Driver 使用AGT定时器上的PWM硬件,PWM音频播放中间件可用于以用户选择的播放速率播放音频流。 Audio Playback PWM Driver ADPCM Decoder ADPCM音频解码器用于将4位ADPCM输入数据解码为16位PCM输出数据。 ADPCM Decoder DTC DTC(数据传输控制器)用于以更快的速率传输音频数据,无需占用CPU资源。 r_dtc AGT AGT(通用异步定时器)用于执行PWM模式操作。 r_agt 2、模块配置 主要用到2个模块:Audio Playback System、ADPCM 1)回放速度 Audio Playback PWM Stacks > g_rm_audio_playback Instance > Properties > Settings > Property > g_rm_audio_playback > General > Playback Speed(Hz) 2)PWM 输出引脚使能 Timer Driver Stacks > g_timer0 Timer, Low-Power (r_agt) > Properties > Settings > Property > Module g_timer0 Timer, Low-Power (r_agt) > Common > Pin Output Support 3)设置AGTOA为输出 Timer Driver Stacks > g_timer0 Timer, Low-Power (r_agt) > Properties > Settings > Property > Module g_timer0 Timer, Low-Power (r_agt) > Output > AGTOA Output 4)设置中断优先级 Timer Driver Stacks > g_timer0 Timer, Low-Power (r_agt) > Properties > Settings > Property > Module g_timer0 Timer, Low-Power (r_agt) > Interrupt > Underflow Interrupt Priority 5)选择计数寄存器位宽为32位 Timer Driver Stacks > g_timer0 Timer, Low-Power (r_agt) > Properties > Settings > Property > Module g_timer0 Timer, Low-Power (r_agt) > General > Counter Bit Width 6)引脚配置 二、相关API函数 API 作用 RM_ADPCM_DECODER_Open 初始化ADPCM音频解码设备 RM_ADPCM_DECODER_Close 关闭 ADPCM音频解码设备 RM_ADPCM_DECODER_Decode 解码4bit ADPCM数据到16bit PCM数据 RM_AUDIO_PLAYBACK_PWM_Open 打开并配置 Audio Playback为PWM设备 RM_AUDIO_PLAYBACK_PWM_Close 关闭模块 RM_AUDIO_PLAYBACK_PWM_Start 开启audio playback PWM模块 RM_AUDIO_PLAYBACK_PWM_Play 播放单缓冲采样数据 RM_AUDIO_PLAYBACK_PWM_Stop 停止模块 三、程序部分 1、hal_entry void hal_entry(void) { fsp_err_t err = FSP_SUCCESS; static uint8_t rtt_input_buf[BUFFER_SIZE_DOWN] = {RESET_VALUE}; uint8_t converted_rtt_input = RESET_VALUE; /* Initialize ADPCM module*/ err = init_adpcm();//初始化ADPCM /* Initialize audio playback pwm module*/ err = init_audio_playback_pwm();//初始化audio playback PWM /* Decoding the ADPCM data into 16-bit signed PCM data */ err = decode_adpcm();//解码ADPCM /* Error trap */ /* Convert signed PCM data into unsigned PCM data */ sign_to_unsign(); //有符号PCM数据转换为无符号PCM数据 while(true) { /* Start to the play the selected audio stream */ err = RM_AUDIO_PLAYBACK_PWM_Start(&g_rm_audio_playback_ctrl); /* Start playing audio */ err = play_audio(); } #if BSP_TZ_SECURE_BUILD /* Enter non-secure code */ R_BSP_NonSecureEnter(); #endif } 2、init_adpcm fsp_err_t init_adpcm(void) { fsp_err_t err = FSP_SUCCESS; /* Open ADPCM decoder */ err = RM_ADPCM_DECODER_Open(&g_adpcm_decoder_ctrl, &g_adpcm_decoder_cfg); return err; } 3、init_audio_playback_pwm fsp_err_t init_audio_playback_pwm(void) { fsp_err_t err = FSP_SUCCESS; /* Open audio playback pwm */ err = RM_AUDIO_PLAYBACK_PWM_Open(&g_rm_audio_playback_ctrl, &g_rm_audio_playback_cfg); return err; } 4、decode_adpcm fsp_err_t decode_adpcm(void) { fsp_err_t err = FSP_SUCCESS; /* Decode ADPCM data into 16-bit signed PCM data */ err = RM_ADPCM_DECODER_Decode(&g_adpcm_decoder_ctrl, g_adpcm_data, g_pcm_stream, ADPCM_BUFFER_SIZE_BYTES); return err; } 5、sign_to_unsign voidsign_to_unsign(void) { for(uint32_t index = 0; index < (ADPCM_BUFFER_SIZE_BYTES * TWO); index++) { /* Convert PCM data into 32bit type*/ g_unsign_pcm_data[index] = (uint32_t) (((uint32_t)g_pcm_stream[index] + INT16_MAX) >> EIGHT); } } 6、输入的PCM数据格式 const uint8_t g_adpcm_data[ADPCM_BUFFER_DATA_SIZE] = { 0x07, 0x77, 0x77, 0x77, 0xCF, 0xBA, 0x90, 0x24, 0x44, 0x23, 0x18, 0xAB, 0xDC, 0xAB, 0x98, 0x13, 0x54, 0x32, 0x20, 0x9B, 0xCD, 0xBA, 0xA9, 0x12, 0x53, 0x43, 0x21, 0x8A, 0xCC, 0xCB, 0xA9, 0x02, 0x35, 0x42, 0x31, 0x09, 0xCB, 0xDB, 0xAA, 0x81, 0x35, 0x34, 0x32, 0x08, 0xBC, 0xDB, 0xAA, 0x90, 0x24, 0x44, 0x32, 0x00, 0xAB, 0xDC, 0xBA, 0x98, 0x23, 0x53, 0x43, 0x10, 0x9B, 0xCD, 0xBA, 0xA8, 0x03, 0x45, 0x32, 0x21, 0x8A, 0xDB, 0xCB, 0xA9, 0x82, 0x44, 0x43, 0x21, 0x0A, 0xBD, 0xCB, 0xA9, 可以通过以下步骤获得PCM数据 首先要有一个原始的16Khz采样的wav文件. 即将WAV格式转换为ADPCM数据格式,可以使用 WAV轉IMA轉換器。在线自由 — Convertio 通过工具获得了ADPCM数据格式文件哦 将二进制文件转换为HEX格式文件File to hex converter 用得到的数据替换g_adpcm_data中的内容 四、实际使用效果 1、对音质不要有太多期待 2、由于wav文件的选取,采样频率可能不一定匹配,播放效果也失真很多 3、笔者只用了蜂鸣器做为播放设备,进一步扩大了失真。 4、WAV文件转换的PCM数据对空间占用很大,该方式不适合播放长音频 5、可以确认PWM确实可以进行音频播放。
2025-12-26 09:14
*附件:基于ICL8038的低频函数发生器.rar 这到底是怎么回事啊!!
2025-12-26 08:53
Linux系统中,有软连接和硬连接两种不同的文件链接方式。硬连接是对文件的另一个目录项,所有硬连接都指向相同的inode,就好比一块存储数据的内存有着多个名字,每增加一个硬连接,连接数就会加一。当连接数为0时,相对应的内存就会被彻底删除。软连接就好比Windows系统中的快捷方式,最终指向的是源文件,一旦源文件删除,则软连接失效,而且软连接和源文件有这个不同的inode号。下面介绍ln命令基本用法,方便后面做演示。硬连接: ln 源文件 连接文件软连接: ln -s 源文件 连接文件大家自行找位置创建测试文件,我这里使用的是/home/elf/work/test,分别创建hard.txt、soft.txt、source.txt文件,最后使用stat命令查看最终结果。$ stat ./*File: ./hard.txtSize: 0Blocks: 0 IO Block: 4096regular empty fileDevice: 803h/2051dInode: 5279891Links: 2Access: (0644/-rw-r--r--)Uid: ( 1000/elf)Gid: ( 1000/ forlinx)Access: 2024-11-06 21:31:37.948957601 +0800Modify: 2024-11-06 21:31:37.948957601 +0800Change: 2024-11-06 21:34:43.967331843 +0800 Birth: 2024-11-06 21:31:37.948957601 +0800File: ./soft.txt -> source.txtSize: 10Blocks: 0 IO Block: 4096symbolic linkDevice: 803h/2051dInode: 5279903Links: 1Access: (0777/lrwxrwxrwx)Uid: ( 1000/elf)Gid: ( 1000/ forlinx)Access: 2024-11-06 21:34:45.739296928 +0800Modify: 2024-11-06 21:32:30.477947367 +0800Change: 2024-11-06 21:32:30.477947367 +0800 Birth: 2024-11-06 21:32:30.477947367 +0800File: ./source.txtSize: 0Blocks: 0 IO Block: 4096regular empty fileDevice: 803h/2051dInode: 5279891Links: 2Access: (0644/-rw-r--r--)Uid: ( 1000/elf)Gid: ( 1000/ forlinx)Access: 2024-11-06 21:31:37.948957601 +0800Modify: 2024-11-06 21:31:37.948957601 +0800Change: 2024-11-06 21:34:43.967331843 +0800 Birth: 2024-11-06 21:31:37.948957601 +0800上图中source.txt是源文件,hard.txt是硬连接文件,soft.txt是软连接文件。其中硬连接和源文件的inode号和连接数(Links)是一样的,这里因存在源文件和硬连接文件所以links数为2。软连接的inode数和link数与源文件都不一致,正好验证了前面的理论。下面来说说硬连接和软连接的特点:软连接:可以跨文件系统创建,并可以链接到目录。但删除源文件会导致符号链接失效(变成悬链接)。硬连接:不能跨越文件系统创建,也不能链接到目录。但删除一个硬连接不影响其他硬连接或者源文件数据,直到最后一个硬连接被删除时,文件数据才会被清除。创建软连接可以使用symlink()函数,创建硬连接文件可以使用link() 函数,下面就来介绍一下这两个函数。
2025-12-26 08:52
1、电阻法(断电测量) 在设备不带电的情况下,用万用表欧姆档进行检查的一种方法。 如检查电阻、电容、线圈、及半导体元件是否开路、短路及其参数是否变化等。 2、电压法(带电测量) 用万用表电压档测量电路电压来检查的一种方法。 以家庭电路为例子,先检测供电端 电源 电压是否正常,再检查负载两端电压。供电端电压正常,负载两端的电压正常,负载不工作。那证明负载坏了。如果负载两端的电压不正常,那就得一步步慢慢查找了。 3、短接法 电气回路中,由于接触不良或开路等原因造成电路不能可靠的接通的情况,可以采用短接法。 短接线的制作,可以用多股铜芯线,两线头焊接鳄鱼夹来制成,两线头与鳄鱼夹的连接必须用焊锡焊牢靠,并使用万用表检查通断。 4、开路法 在并联电路中,对于电路中短路型故障,可以有选择性的断开分支电路,然后再逐级查找故障点。 5、代换法 对电路中损坏的电气元件、电路板等进行更换。
2025-12-26 08:35
CW32芯片有哪些功能模块?
2025-12-26 08:11
芯源的CW32单片机芯片,对于code加密方法和手段都有哪些方式?
2025-12-26 08:09