【RA-Eco-RA4E2-64PIN-V1.0 開發板】步進電機的串口控制

【RA-Eco-RA4E2-64PIN-V1.0 開發板】步進電機的串口控制

本文介紹了 RA-Eco-RA4E2-64PIN-V1.0 開發板通過串口指令實現 28BYJ-48 步進電機旋轉角度和速度的精確控制的項目設計。

項目介紹

  • 硬件連接:28BYJ-48 步進電機、ULN2003 驅動板、Jlink 調試器、供電電源等;
  • 工程創建:部署 GPIO 、 UART 、串口中斷等配置;
  • 工程代碼:包括主函數、步進電機驅動代碼、串口配置代碼等;
  • 測試效果:包括串口發送指令、步進電機旋轉控制、串口打印狀態信息等。

硬件連接

接線方式如下

ULN2003 驅動板RA4E2說明
IN1P100步進脈沖 A
IN2P101步進脈沖 B
IN3P104步進脈沖 C
IN4P112步進脈沖 D
VCC5V驅動板電源
GNDGND共地

串口通信使用板載 USB 轉 TTL 工具,對應 P109 (TXD9) 和 P110 (RXD9) 引腳。

實物圖

在這里插入圖片描述

工程創建

  • 打開 e2 studio 軟件;
  • 依次點擊 文件 - 新建 - 瑞薩 C/C++ 項目 - Renesas RA
  • 依次進行工程命名,路徑設置,FSP版本,目標開發板選擇,Device 選擇 R7FA4E2B93CFM ,工具鏈選擇 GNU ARM Embedded ,調試器選擇 J-Link ,完成工程創建 ;

串口配置

  • 進入 FSP 配置界面,打開 Pins 標簽頁,根據原理圖或開發板絲印,將 P109 和 P110 引腳分別配置為 TXD9 和 RXD9 串口模式;
  • 新建串口通信堆棧 New Stack - Connectivity - UART (r_sci_uart)
  • 串口屬性配置,General 標簽下的 Channel 改為 9,名稱改為 g_uart9,中斷回調函數命名為 user_uart_callback
  • 進入 BSP 標簽頁,配置 RA Common 屬性,RA Common 標簽下的 Heap size 改為 0x1000 ,Main Stack Size 設置為 0x2000 以確保堆棧空間充足;

GPIO 配置

  • 進入 FSP 配置界面,打開 Pins 標簽頁,選中 P100 引腳,模式配置為初始低電平的輸出模式;

  • 同理,將 P101、P104 和 P112 管腳也配置為初始低電平的輸出模式;

  • 點擊 Generate Project Content 按鈕,生成工程代碼。

流程圖

在這里插入圖片描述

工程代碼

在左側的項目目錄中,打開 src/hal_entry.c 文件,添加如下關鍵代碼

hal_entry.c
#include "hal_data.h"
#include "stepper_motor.h"
#include <stdio.h>FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTERfsp_err_t err = FSP_SUCCESS;
volatile bool uart_send_complete_flag = false;// 你的串口回調函數
void user_uart_callback(uart_callback_args_t * p_args) {if (p_args->event == UART_EVENT_TX_COMPLETE) {uart_send_complete_flag = true;}// 添加接收中斷處理else if (p_args->event == UART_EVENT_RX_CHAR) {stepper_motor_uart_callback(p_args); // 調用我們的接收處理函數}
}/*------------- 串口重定向 -------------*/
#ifdef __GNUC__#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#endifPUTCHAR_PROTOTYPE {err = R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)&ch, 1);if (FSP_SUCCESS != err) __BKPT();while(uart_send_complete_flag == false) {}uart_send_complete_flag = false;return ch;
}int _write(int fd, char *pBuffer, int size) {for (int i = 0; i < size; i++) {__io_putchar(*pBuffer++);}return size;
}void hal_entry(void)
{/* TODO: add your own code here */// 初始化UARTerr = R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);assert(FSP_SUCCESS == err);if (FSP_SUCCESS != err) {printf("UART open failed: 0x%x\r\n", err);return;}printf("RA4E2 - Stepper Motor - UART Debug\r\n");//printf("UART initialized at 115200 baud\r\n");// 初始化步進電機stepper_motor_init();// 測試直接調用 - 確認電機本身工作正常//printf("Testing direct call: rotating 90 degrees...\r\n");//stepper_motor_rotate_degrees(90.0f);//stepper_motor_stop();//R_BSP_SoftwareDelay(2000, BSP_DELAY_UNITS_MILLISECONDS);//printf("Direct call test completed.\r\n");//printf("Now testing UART reception...\r\n");// 啟用UART接收uint8_t dummy;err = R_SCI_UART_Read(&g_uart9_ctrl, &dummy, 1);if (err != FSP_SUCCESS) {printf("UART read start failed: 0x%x\r\n", err);}// 設置回調函數g_uart9_ctrl.p_callback = user_uart_callback;// 啟用全局中斷__enable_irq();printf("Ready to receive angle values.\r\n");printf("Send numbers like: 90, -45, 180, 360\r\n");printf("Waiting for UART data...\r\n");uint32_t counter = 0;while (1) {// 顯示系統運行狀態if (counter % 100 == 0) {//printf("System running: %lu, Buffer index: %u\r\n", counter, g_uart_buffer_index);}// 檢查是否有數據接收if (g_uart_received) {printf("Data received! Processing...\r\n");stepper_motor_process_command();}// 檢查緩沖區是否有內容但未完成接收if (g_uart_buffer_index > 0 && !g_uart_received) {printf("Buffer content: ");for (uint16_t i = 0; i < g_uart_buffer_index; i++) {printf("%c(0x%02X) ", g_uart_buffer[i], g_uart_buffer[i]);}printf("\r\n");}R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS);counter++;}#if BSP_TZ_SECURE_BUILD/* Enter non-secure code */R_BSP_NonSecureEnter();
#endif
}
stepper_motor.h

新建 stepper_motor.h 頭文件,添加如下代碼

#ifndef STEPPER_MOTOR_H_
#define STEPPER_MOTOR_H_#include "hal_data.h"
#include <stdbool.h>// 引腳定義
#define MOTOR_PIN_IN1 BSP_IO_PORT_01_PIN_00
#define MOTOR_PIN_IN2 BSP_IO_PORT_01_PIN_01
#define MOTOR_PIN_IN3 BSP_IO_PORT_01_PIN_04
#define MOTOR_PIN_IN4 BSP_IO_PORT_01_PIN_12// 每轉步數
#define STEPS_PER_REVOLUTION 509.0f
#define UART_BUFFER_SIZE 32// 全局變量聲明
extern char g_uart_buffer[UART_BUFFER_SIZE];
extern volatile uint16_t g_uart_buffer_index;
extern volatile bool g_uart_received;// 函數聲明
void stepper_motor_init(void);
void stepper_motor_rotate_steps(int32_t steps);
void stepper_motor_rotate_degrees(float degrees);
void stepper_motor_set_velocity(uint32_t velocity_ms);
void stepper_motor_stop(void);
void stepper_motor_show_help(void);
void stepper_motor_uart_callback(uart_callback_args_t *p_args);
void stepper_motor_process_command(void);
float parse_angle_command(const char *command);#endif /* STEPPER_MOTOR_H_ */
stepper_motor.c

新建 stepper_motor.c 源文件,添加如下代碼

#include "stepper_motor.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>// 四相八拍序列
const uint8_t STEP_SEQ[8][4] = {{1, 0, 0, 1}, {1, 0, 0, 0}, {1, 1, 0, 0}, {0, 1, 0, 0},{0, 1, 1, 0}, {0, 0, 1, 0}, {0, 0, 1, 1}, {0, 0, 0, 1}
};// 全局變量
static uint32_t g_step_delay_ms = 1;void stepper_motor_init(void) {// 初始化引腳R_IOPORT_PinWrite(&g_ioport_ctrl, MOTOR_PIN_IN1, BSP_IO_LEVEL_LOW);R_IOPORT_PinWrite(&g_ioport_ctrl, MOTOR_PIN_IN2, BSP_IO_LEVEL_LOW);R_IOPORT_PinWrite(&g_ioport_ctrl, MOTOR_PIN_IN3, BSP_IO_LEVEL_LOW);R_IOPORT_PinWrite(&g_ioport_ctrl, MOTOR_PIN_IN4, BSP_IO_LEVEL_LOW);printf("Stepper motor initialized.\r\n");
}static void set_coil_state(uint8_t in1, uint8_t in2, uint8_t in3, uint8_t in4) {R_IOPORT_PinWrite(&g_ioport_ctrl, MOTOR_PIN_IN1, in1 ? BSP_IO_LEVEL_HIGH : BSP_IO_LEVEL_LOW);R_IOPORT_PinWrite(&g_ioport_ctrl, MOTOR_PIN_IN2, in2 ? BSP_IO_LEVEL_HIGH : BSP_IO_LEVEL_LOW);R_IOPORT_PinWrite(&g_ioport_ctrl, MOTOR_PIN_IN3, in3 ? BSP_IO_LEVEL_HIGH : BSP_IO_LEVEL_LOW);R_IOPORT_PinWrite(&g_ioport_ctrl, MOTOR_PIN_IN4, in4 ? BSP_IO_LEVEL_HIGH : BSP_IO_LEVEL_LOW);
}void stepper_motor_rotate_steps(int32_t steps) {if (steps == 0) {printf("No steps to rotate.\r\n");return;}int8_t direction = (steps >= 0) ? 1 : -1;uint32_t absolute_steps = (uint32_t)abs(steps);printf("Rotating %s, steps: %lu, delay: %lums\r\n",(direction > 0) ? "CW" : "CCW", absolute_steps, g_step_delay_ms);for (uint32_t i = 0; i < absolute_steps; i++) {if (direction > 0) {// 順時針for (int phase = 0; phase < 8; phase++) {set_coil_state(STEP_SEQ[phase][0], STEP_SEQ[phase][1],STEP_SEQ[phase][2], STEP_SEQ[phase][3]);R_BSP_SoftwareDelay(g_step_delay_ms, BSP_DELAY_UNITS_MILLISECONDS);}} else {// 逆時針for (int phase = 7; phase >= 0; phase--) {set_coil_state(STEP_SEQ[phase][0], STEP_SEQ[phase][1],STEP_SEQ[phase][2], STEP_SEQ[phase][3]);R_BSP_SoftwareDelay(g_step_delay_ms, BSP_DELAY_UNITS_MILLISECONDS);}}// 每100步輸出進度if ((i + 1) % 100 == 0) {printf("Progress: %lu/%lu steps\r\n", i + 1, absolute_steps);}}printf("Rotation completed.\r\n");
}void stepper_motor_rotate_degrees(float degrees) {// 計算步數float steps_float = degrees * (STEPS_PER_REVOLUTION / 360.0f);int32_t steps = (int32_t)steps_float;printf("Angle: %.1f° -> Steps calculation:\r\n", degrees);//printf("  Steps/revolution: %.0f\r\n", STEPS_PER_REVOLUTION);//printf("  Calculated steps: %.1f\r\n", steps_float);//printf("  Rounded steps: %ld\r\n", steps);stepper_motor_rotate_steps(steps);
}void stepper_motor_set_velocity(uint32_t velocity_ms) {g_step_delay_ms = velocity_ms;//printf("Speed set to: %lums/step\r\n", g_step_delay_ms);
}void stepper_motor_stop(void) {set_coil_state(0, 0, 0, 0);printf("Motor stopped.\r\n");
}void stepper_motor_show_help(void) {printf("=== Stepper Motor Simple Control ===\r\n");printf("Send angle values via UART:\r\n");printf("  Examples:\r\n");printf("    90     - Rotate 90 degrees clockwise\r\n");printf("    -45    - Rotate 45 degrees counter-clockwise\r\n");printf("    180    - Rotate 180 degrees\r\n");printf("    360    - Rotate full circle\r\n");printf("  Fixed speed: 1ms/step\r\n");printf("====================================\r\n");
}
stepper_motor_uart.c

新建 stepper_motor_uart.c 源文件,添加如下代碼

#include "stepper_motor.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>// 全局變量定義
char g_uart_buffer[UART_BUFFER_SIZE];
volatile uint16_t g_uart_buffer_index = 0;
volatile bool g_uart_received = false;// 固定速度
static uint32_t g_fixed_velocity = 1; // 固定為1ms// 串口中斷回調函數
void stepper_motor_uart_callback(uart_callback_args_t *p_args) {if (p_args->event == UART_EVENT_RX_CHAR) {uint8_t received_char = (uint8_t)p_args->data;// 回車或換行表示命令結束if (received_char == '\r' || received_char == '\n') {if (g_uart_buffer_index > 0) {g_uart_buffer[g_uart_buffer_index] = '\0';g_uart_received = true;}g_uart_buffer_index = 0;}// 添加到緩沖區else if (g_uart_buffer_index < UART_BUFFER_SIZE - 1) {g_uart_buffer[g_uart_buffer_index++] = received_char;}// 緩沖區滿else {g_uart_buffer_index = 0; // 重置緩沖區}}
}// 解析角度命令
float parse_angle_command(const char *command) {if (command == NULL || strlen(command) == 0) {printf("Empty command\r\n");return 0.0f;}printf("Received command: %s\r\n", command);// 直接轉換為浮點數char *endptr;float angle = strtof(command, &endptr);// 檢查轉換是否成功if (endptr == command) {printf("Invalid number format: %s\r\n", command);return 0.0f;}// 檢查是否有額外字符while (*endptr != '\0') {if (!isspace(*endptr)) {printf("Extra characters in command: %s\r\n", endptr);break;}endptr++;}printf("Parsed angle: %.1f°\r\n", angle);return angle;
}// 處理接收到的命令
void stepper_motor_process_command(void) {if (g_uart_received) {// 復制緩沖區內容char local_buffer[UART_BUFFER_SIZE];strncpy(local_buffer, g_uart_buffer, UART_BUFFER_SIZE);printf("Processing command: %s\r\n", local_buffer);// 解析角度float angle = parse_angle_command(local_buffer);if (fabsf(angle) > 0.1f) {printf("Executing: %.1f° at fixed speed: %lums/step\r\n", angle, g_fixed_velocity);// 設置固定速度stepper_motor_set_velocity(g_fixed_velocity);// 執行旋轉stepper_motor_rotate_degrees(angle);// 停止電機stepper_motor_stop();printf("Execution completed.\r\n");} else if (fabsf(angle) > 0.0f) {printf("Angle too small: %.1f°\r\n", angle);}// 重置標志g_uart_received = false;g_uart_buffer_index = 0;memset(g_uart_buffer, 0, sizeof(g_uart_buffer));}
}
  • 保存代碼,右鍵項目 - 構建程序;

  • 右鍵項目 - 調試項目 - 上傳固件至開發板。

測試效果

  • 28 BYJ-48 步進電機、ULN2003 驅動板、RA4E2 開發板接線硬件連接完成;
  • TypeC - USB 數據線連接開發板串口和電腦;
  • 打開串口調試助手,配置對應的波特率等參數;
  • 打開串口,即可接收芯片發送的字符串;

在這里插入圖片描述

同時串口打印輸出步進電機狀態

? 90
? Data received! Processing...
Processing command: 90
Received command: 90
Parsed angle: 90.0°
Executing: 90.0° at fixed speed: 1ms/step
Angle: 90.0° -> Steps calculation:
Rotating CW, steps: 127, delay: 1ms
Progress: 100/127 steps
Rotation completed.
Motor stopped.
Execution completed.

動態效果

在這里插入圖片描述

總結

本文介紹了 RA-Eco-RA4E2-64PIN-V1.0 開發板通過串口指令實現 28BYJ-48 步進電機旋轉角度和速度的精確控制的項目設計,包括硬件連接、工程創建、工程代碼、測試效果等流程,為 Renesas RA 系列產品在工業自動化、科研儀器控制等相關領域的開發設計和應用提供了參考。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94270.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94270.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94270.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PiscCode基于 Mediapipe 的人體多模態關鍵點檢測與可視化系統 —— HumanMultiLandmarker 深度解析

一、引言 在計算機視覺領域&#xff0c;人體關鍵點檢測&#xff08;Human Pose Estimation&#xff0c;HPE&#xff09;一直是研究和應用的熱點方向之一。隨著深度學習與實時圖像處理技術的發展&#xff0c;人體姿勢估計已經從傳統的 2D 檢測走向了 3D 空間建模&#xff0c;并…

文獻閱讀筆記【物理信息機器學習】:Physics-informed machine learning

文獻閱讀筆記&#xff1a;Physics-informed machine learningSummaryResearch ObjectiveBackground / Problem Statement問題背景研究現狀需解決的問題問題出現的原因分析問題解決思路Method(s)問題建模作者解決問題的方法/算法1. 觀測偏差&#xff08;Observational Biases&am…

Linux服務環境搭建指南

實驗拓撲概述**實驗拓撲&#xff1a; APPSRV&#xff1a; 主機名&#xff1a;appsrv.example.com ip地址&#xff1a;192.168.100.10 網關&#xff1a;192.168.100.254 網卡為NAT模式 STORAGESRV&#xff1a; 主機名&#xff1a;storagesrv.example.com ip地址&#xff1a;192.…

[特殊字符] 數據庫知識點總結(SQL Server 方向)

一、數據庫基礎概念數據庫&#xff08;Database&#xff09;&#xff1a;存儲和管理數據的容器。數據表&#xff08;Table&#xff09;&#xff1a;以行和列形式組織數據。行&#xff08;Row&#xff09;&#xff1a;一條記錄。列&#xff08;Column&#xff09;&#xff1a;字…

【PSINS工具箱】MATLAB例程,二維平面上的組合導航,EKF融合速度、位置和IMU數據,4維觀測量

文章目錄關于工具箱程序簡介代碼概述核心功能與步驟運行結果MATLAB代碼關于工具箱 本文所述的代碼需要基于PSINS工具箱&#xff0c;工具箱的講解&#xff1a; PSINS初學指導&#xff1a;https://blog.csdn.net/callmeup/article/details/137087932 本文為二維平面上的定位&am…

MiMo-VL 技術報告

摘要 我們開源了 MiMo-VL-7B-SFT 和 MiMo-VL-7B-RL 兩個強大的視覺語言模型,它們在通用視覺理解和多模態推理方面均展現出最先進的性能。MiMo-VL-7B-RL 在 40 項評估任務中的 35 項上優于 Qwen2.5-VL-7B,并在 OlympiadBench 上獲得 59.4 分,超越了參數量高達 780 億的模型。…

CTFshow Pwn入門 - pwn 19

先看main函數&#xff1a;fclose(_bss_start) fclose(stdout) 關閉了默認fd1的輸出&#xff0c;所以system的結果無法直接看到。 思路&#xff1a; 輸出重定向。 ls 1>&0 ls >&0 ls >&2 ###三種寫法均可將輸出重定向到能回顯的終端并獲得一個新的交互…

Redis(以Django為例,含具體操作步驟)

簡介Redis&#xff08;Remote Dictionary Server&#xff09;是一個開源的內存數據結構存儲系統&#xff0c;支持多種數據結構&#xff08;如字符串、哈希、列表、集合、有序集合等&#xff09;&#xff0c;可用作數據庫、緩存或消息隊列。其核心特點包括&#xff1a;高性能&am…

瀏覽器解析網址的過程

問題瀏覽器解析網址的過程我的回答當你在瀏覽器地址欄輸入一個URL&#xff08;比如www.example.com&#xff09;并按下回車后&#xff0c;會發生以下一系列步驟&#xff1a;首先&#xff0c;瀏覽器會解析URL結構&#xff0c;確定要訪問的協議、域名和路徑。如果你沒有輸入協議部…

NVIDIA Nsight Systems性能分析工具

* 性能分析 NVIDIA Nsight Systems (推薦)&#xff1a; 這是 NVIDIA 官方推薦的更現代、功能更強大的分析工具。 安裝 Nsight Systems在 Docker 容器中啟動程序&#xff1a;# 確保你在啟動容器時掛載了/usr/local/cuda/targets/x86_64-linux/lib/ 和 /usr/local/nvidia/lib64 #…

后臺管理系統-14-vue3之tag標簽頁的實現

文章目錄 1 tag靜態實現 1.1 CommonTag.vue(el-tag) 1.2 Main.vue(普通組件標簽) 2 tag通過pinia管理 2.1 CommonAside.vue(菜單點擊事件) 2.2 stores/index.js(selectMenu()和tags) 2.3 CommonTag.vue(計算屬性tags) 3 點擊tag之后跳轉到指定頁面 3.1 views/Mail.vue(商品) 3.…

CMake2: CMakeLists.txt的常用命令

參考鏈接: 愛編程的大丙 | CMake教程 CMakeLists指令以及常用方法 現代 CMake 教程 文章目錄1. cmake_minimum_required( )2. project( )3. add_executable( )4. set()5. aux_source_directory( )6. file( )7. include_directories( )8. add_library( )9. link_libraries()與li…

Ansible入門:自動化運維基礎

Ansible 基礎概念與安裝1. 自動化動機 (Motivation for Automation)概念解釋&#xff1a; 指為什么要用Ansible等工具來替代手動管理服務器。核心動機包括&#xff1a;效率與速度&#xff1a; 同時在上百甚至上千臺服務器上執行任務&#xff0c;秒級完成&#xff0c;遠非人工可…

【測試】基于博客系統的測試報告

前言 本篇博客對簡易的博客系統做的測試總結一份測試報告&#xff0c;包含功能測試&#xff0c;自動化測試&#xff0c;性能測試 &#x1f493; 個人主頁&#xff1a;zkf ? 文章專欄&#xff1a;測試 若有問題 評論區見&#x1f4dd; &#x1f389;歡迎大家點贊&#x1f44d;…

Oracle:配置讓插入語句時id自動輸入

Oracle:配置讓插入語句時id自動輸入無需手動指定&#xff0c;核心是利用 序列&#xff08;Sequence&#xff09; 或 自增列&#xff08;Identity Column&#xff09; 來自動生成唯一值。以下是兩種常用方案&#xff1a;方案 1&#xff1a;使用序列&#xff08;Sequence&#xf…

秒殺服務的回調方案

在秒殺場景中&#xff0c;用戶點擊“搶購”后&#xff0c;后端需要通過異步處理應對高并發&#xff08;避免請求阻塞&#xff09;&#xff0c;同時需通過實時回調機制將最終結果&#xff08;成功/失敗&#xff09;推送給客戶端并展示。核心方案是&#xff1a;“前端發起請求→后…

php apache無法接收到Authorization header

Apache 默認不傳遞 Authorization頭到后端環境&#xff08;如 PHP&#xff09;。其表現是&#xff1a;print_r($_SERVER)時&#xff0c; 沒有 [Authorization] &#xff1a;Array ([Accept-Language] > zh,en;q0.9,zh-CN;q0.8,en-US;q0.7[Accept-Encoding] > gzip, defla…

當我們想用GPU(nlp模型篇)

在個人設備上“把 GPU 真正用起來”做 NLP&#xff0c;分五步&#xff1a;準備 → 安裝 → 驗證 → 訓練/推理 → 踩坑排查。下面每一步都給出可復制命令和常見錯誤。 ────────────────── 1. 硬件準備 ? 一張 NVIDIA GPU&#xff0c;算力 ≥ 6.1&#xff08…

CryptSIPVerifyIndirectData函數分析

可以使用此函數從SIP接口對應的文件中提取簽名信息 CryptSIPVerifyIndirectData&#xff1a;將當前文件的哈希結果做為“指紋”&#xff0c;并與從CryptSIPGetSignedDataMsg中提取的簽名信息進行比較。 如果哈希結果相同&#xff0c;則意味著當前文件與之前簽名的文件相同&…

20250823解決榮品RD-RK3588-MID開發板在充電的時候大概每10s屏幕會像水波紋閃爍一下

20250823解決榮品RD-RK3588-MID開發板在充電的時候大概每10s屏幕會像水波紋閃爍一下 2025/8/23 17:58【結論】&#xff1a;使用直流電源供電&#xff0c;給電池【快速】充電&#xff0c;但是直流電源的電壓穩定&#xff0c;電流抖動導致的&#xff01;那個是2.4G 已經知道了我司…