- 博客(93)
- 资源 (5)
- 收藏
- 关注
原创 CubeIDE串口重定向 printf
通过重写弱函数__io_putchar,将printf输出重定向至串口。在STM32F4的CubeIDE中,添加#include <stdio.h>,实现int __io_putchar(int ch)并调用HAL_UART_Transmit,确保开启UseNewlib-nano并正确配置串口参数。注意:仅支持UART,需在CubeMX中初始化串口,波特率等参数一致,加\r\n换行,避免乱码或报错。
2026-10-15 20:50:27
72
原创 stm32f427vit6 hal库 led闪灯工程(1)
本文介绍了基于STM32的LED控制工程开发流程:包括工程位置设置、时钟与调试配置、GPIO初始化,生成代码后创建icode/led文件夹并添加led.h与led.c文件,编写LED控制函数。main.c中调用该函数实现LED亮灭控制。编译时需正确设置文件包含路径,排除编译过滤,并配置下载与运行参数。最后可调整C文件字体大小以优化编辑体验。
2026-10-12 09:42:29
25
原创 TCP+WebSocket双向转发服务器 完整部署运维手册
# 五、运维常用命令 # 查看服务进程 ps aux | grep tcp_server # 实时监控日志 tail -f server.log # 完整重启服务 pkill -f "python3 tcp_server.py" nohup python3 tcp_server.py > server.log 2>&1 & ## 六、正常启动标准输出 ===== 服务启动完成 ===== 网页WebSocket地址:ws://8.134.197.176:8080 TCP客户端连接端口:8081。
2026-07-27 12:07:28
202
原创 从零跑通:阿里云 ECS + 百炼 MaaS 大模型答题卡识别全流程
一、编写 server.py Flask 服务代码(云服端布置)Ctrl+OCtrl+X。
2026-07-12 10:38:23
210
原创 HICKPI主板h618 Ubuntu / Armbian 镜像 SD安装
本文介绍了使用SD卡烧录Ubuntu系统的详细步骤。硬件需要16GB以上SD卡及读卡器,软件需准备balenaEtcher烧录工具和Ubuntu镜像。操作流程为:1)用管理员模式运行balenaEtcher烧录镜像到SD卡;2)完成后关闭软件;3)将SD卡插入开发板并上电,通过HDMI连接显示器即可启动Ubuntu系统。整个过程简单明了,适合开发板用户快速部署Ubuntu系统。
2026-04-02 17:13:18
246
原创 esp32测试DH11模块
print(f"温度: {temp}°C 湿度: {humi}%")print("读取失败,请检查接线!# 初始化 DHT11,DATA 引脚接 GPIO4。# DHT11 必须至少间隔 2 秒读取一次。
2026-03-31 23:35:48
68
原创 esp32测试电机
初始化 PWM 引脚 + 频率(必须加 Pin,否则报错)# 把 13 改成你实际使用的 GPIO 引脚即可。# 准备完成,永久保持 500。# 电机启动准备流程。
2026-03-28 15:41:18
219
原创 ESP32电压显示
ESP32控制器系统摘要 本系统基于ESP32开发板实现了一个集LED控制、PWM调节和电压监测功能于一体的Web控制平台。硬件配置包括: 电压检测:GPIO34通过10k+4.7k分压电阻接入待测电压 PWM输出:GPIO14(频率500Hz) LED控制:板载GPIO2 主要功能特性: 网页控制界面支持: LED开关控制 PWM强度调节(500-1000范围) 实时电压显示(每秒自动刷新) 提供RESTful API接口: /light/on|off /pwm/[value] /voltage(返回实测
2026-03-22 17:15:03
359
原创 ESP32 LED控制代码解析
这段 HTML 代码通过 JavaScript 向 ESP32 设备发送网络请求来控制 LED。下面用代码与汉字结合的方式,详细解析“发了什么信息”“发送到哪里”“用哪句代码发”“如何发”这四个问题。
2026-03-20 20:49:14
417
原创 方案 3:手机控制 ESP32
print("来自{}的指令:点亮LED".format(sender_info))print("来自{}的指令:熄灭LED".format(sender_info))print("Web服务器OS错误: {}".format(e))print("API服务器已启动,地址: http://{}".format(ip))print("UDP服务异常: {}".format(e))print("Web服务器其他错误: {}".format(e))print("UDP服务其他错误: {}".format(e))
2026-03-20 15:06:31
433
原创 方案 2:手机本地打开 HTML,通过网络请求控制 ESP32
核心限制:ESP32 无法访问手机本地文件,因此 HTML 要么内嵌在 ESP32 的代码里,要么手机本地打开 HTML 并主动请求 ESP32 的 IP。推荐方案:方案 1(HTML 内嵌)最简单,无需额外操作,手机只需连接 ESP32 的热点并访问 IP 即可。方案 2 适用场景:需要频繁修改 HTML 页面,且不想每次都上传到 ESP32 时使用。
2026-03-19 20:36:38
361
原创 ESP32 LED控制器
本文介绍了一个基于ESP32的LED控制系统,采用前后端分离架构。后端使用Python(main.py)实现AP模式启动、UDP服务和HTML文件读取功能,前端通过独立HTML文件(index.html)提供用户界面。系统通过GPIO2控制LED状态,支持"lighton/off"指令,并具备错误处理机制。关键改进包括:1)分离前后端代码;2)新增read_html_file()函数读取外部HTML;3)支持UTF-8编码。使用要求:将两个文件上传至ESP32根目录后运行main.py即
2026-03-19 20:03:24
325
原创 esp32wifi的AP模式
该代码实现了ESP32的AP模式和UDP通信功能。首先通过start_ap()函数创建WiFi热点(SSID:ESP32_APTest,密码:12345678),然后建立UDP服务器监听7788端口。主程序循环接收UDP数据,当收到"lighton"和"lightoff"指令时,分别控制GPIO2引脚连接的LED灯亮灭。程序包含错误处理机制,能捕获解码异常,并实时打印发送方信息和接收内容。
2026-03-19 17:15:11
265
原创 ESP32项目基础步骤
本文简要介绍了ESP32开发板的配置流程:1)购买ESP32开发板;2)安装驱动程序;3)下载MicroPython固件;4)安装Thonny IDE。详细步骤包括:连接开发板后,通过Thonny工具选项安装MicroPython固件,选择对应文件进行烧录。该指南为开发者提供了快速搭建ESP32开发环境的操作要点。
2026-03-19 09:21:32
37
原创 安桌系统adb操作
命令输出会包含类似 com.android.settings/com.android.settings.Settings$SystemUpdateActivity 的信息,其中 / 前面是包名,后面是 Activity 类名,直接替换到 am start -n 命令中即可。命令输出会包含类似 com.android.settings/com.android.settings.Settings 的信息,其中 / 前面是包名,后面是 Activity 类名,直接替换到 am start -n 命令中即可。
2025-11-04 16:12:25
555
原创 STM32F103C8T6裸机多任务编程的问题
本实验实现的现象为每按一次按钮( pa0内上拉模式)切换闪灯(PC13开漏输出)的速度 慢闪间隔1000 ms 正常间隔:200 ms 快闪间隔 思路是:按钮检测和LED控制分成两个独立的函数,每个函数的执行时间不超过5ms。同时,SysTick中断不再处理这些逻辑,而是只负责维护一个64位的计数器,用于记录时间。这样,主循环中的两个函数可以基于这个计数器来判断时间间隔,实现非阻塞的延迟。
2025-04-26 08:05:26
706
1
原创 极域教师管理CMD命令操作
k taskkill /f /im 新中考考试平台—考生端V6.0.exe。D:\湛江考生端V6.0\新中考考试平台—考生端V6.0.exe。/K RD /s/q D:\湛江考生端V6.0\Answer。四、关闭360浏览器。
2025-04-25 17:25:19
711
原创 ESP 32控制无刷电机2
recv_data, sender_info = udp_socket.recvfrom(1024) # 缓冲区大小为1024字节。recv_data = recv_data.decode('utf-8').strip() # 解码为字符串并去掉多余空白。print(f"设置PWM占空比为: {value}")print(f"接收到数据: {recv_data} 来自 {sender_info}")udp_socket.bind(("0.0.0.0", 7788)) # 绑定端口7788。
2025-02-28 23:43:02
1023
原创 用HAL_GetTick()函数实现简单任务调用
/ 获取当前时间(毫秒级){led_blink, 500, 0}, // LED闪烁任务,每500毫秒执行一次。// 计算任务数量,并初始化每个任务的上次运行时间为0(表示尚未运行)
2025-01-14 10:31:49
3626
原创 FreeRTOS-系统移植到stm32F103C8T6中(使用标准库)
本文主要介绍在KEIL环境下移植FreeRTOS到stm32F103C8T6芯片上一、源码下载FreeRTOSv9.0.0。
2025-01-08 09:18:51
940
原创 用pyinstaller打包
第一,首先在cmd环境安装程序所用到的库 如: pip install pygame。第四, 在当前目录使用 输入pyinstaller -F -w xxx.py。第二,安装pip install pyinstaller。第三,所在的文件夹输入cmd 进入当前目录。
2024-12-25 21:46:10
162
原创 stm32f103x控制蜂鸣器
/ 配置TIM2为PWM模式1,预分频器71,计数器周期499(产生2kHz的PWM频率,如果系统时钟为72MHz)Beep_PWM_Start(duty_cycle);// 开启PWM输出,设置占空比。// 示例调用:蜂鸣器以50%占空比,100ms开启,100ms关闭的模式重复发声3次。// 配置TIM2 CH1 PWM模式1,输出比较极性高,输出状态使能。// 配置PA0为复用推挽输出(TIM2_CH1)// 停止PWM输出(通过将占空比设置为0%)
2024-12-06 23:43:50
652
原创 百度木木浆测试
image = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 转换为RGB格式,因为PIL使用RGB。plt.imshow(cv2.cvtColor(im_show, cv2.COLOR_BGR2RGB)) # 再次转换为RGB以在matplotlib中显示。ocr = PaddleOCR(use_gpu=False, lang='ch') # 假设我们识别中文字符,并且不使用GPU。# 显示带有OCR结果的图像。
2024-12-04 23:23:11
493
原创 动态人脸识别(四)---显示名字
frame = draw_chinese_text_on_image(frame, '签到时间:', (x-100, y+220), font_path, font_size,gray = cv2.imread('./faces_dynamic/%s/%d.jpg' % (dir, i)) # 三维图片。print('这个人是:%s.置信度:%0.1f' % (label, confidence))font_path = 'msyhbd.ttc' # 替换为你的字体文件路径。
2024-12-03 09:46:14
666
原创 动态人脸识别(三)---采集名字拼音缩写与名字
key = input('请输入文件夹的名字,姓名拼音的缩写(用于文件夹名),如果输入Q,程序退出!# 注意:这里我们不处理重复文件夹名的情况,如果需要,可以添加额外的逻辑来处理。# 检查是否已经存在该文件夹名字,避免重复(假设文件夹名字是唯一的)name = input('请输入与文件夹对应的名字: ')# 检查names.xlsx文件是否存在,如果不存在则创建它。# 保存更新后的DataFrame到Excel文件。# 保存名字和文件夹名到Excel文件。# 读取现有的Excel文件。
2024-12-03 09:42:30
395
原创 动态人脸识别-中文名字显示
frame = draw_chinese_text_on_image(frame, '签到时间:', (x-100, y+220), font_path, font_size,gray = cv2.imread('./faces_dymamic/%s/%d.jpg' % (dir, i)) # 三维图片。建入一个names.xlsx文件,里面有两列,分别是动态人脸识别(一)新建的,拼音缩写字母,(第一列)第二列,是汉字的名字。# 计算文本的y坐标,使其位于图片底部上方bottom_margin的位置。
2024-12-03 09:01:49
739
原创 动态人脸识别(二)
gray = cv2.imread(f'./faces_dymamic/{dir}/{i}.jpg') # 使用 f-string 简化字符串格式化。face_detector = cv2.CascadeClassifier('./haarcascade_frontalface_alt.xml') # 修正文件名。print(f'这个人是:{label}. 置信度:{confidence:.1f}') # 使用 f-string 简化字符串格式化。
2024-12-03 00:19:36
331
原创 动态人脸识别(一)
第一:安装opencv库 第二:下载文件haarcascade_frontalface_alt.xml与程序放在同目录下,第三,安装opencv-contrib-python库。key = input('请输入文件夹的名字,姓名拼音的缩写,如果输入Q,程序退出!# 在faces_dynamic下面创建子文件夹。# #1、动态采集人脸。# 加载人脸特径数据。
2024-12-03 00:16:56
408
原创 Micopython与旋转按钮(Encoder)
range_mode=RotaryIRQ.RANGE_WRAP)#RANGE_WRAP越界后从另一端开始。reverse=False, #是否反方向增加。pin_num_dt=13, #data引脚。r = RotaryIRQ(pin_num_clk=12, #clk引脚。min_val=100, #起始值。max_val=230, #终止值。二、rotary_irq_esp.py。一、 encoder.py文件。三、 rotary.py文件。
2024-12-01 13:58:59
828
原创 用micropython 操作stm32f4单片机实现串口通讯
self.system_time = int(temp[7] + temp[6] + temp[5] + temp[4], 16) # 传感器上电时间。self.system_time = int(temp[7] + temp[6] + temp[5] + temp[4], 16) # 传感器上电时间。# self.dis = (int(temp[10] + temp[9] + temp[8], 16)) / 1000 # 测距距离 单位m。
2024-11-30 13:00:56
1106
移动开发基于ADB工具的Android设备调试与自动化操作:全志H618开发板应用启动及系统定制实现方案
2025-11-05
FreeRTOS系统实例(手机控制无刷电机版本)
2025-01-24
micropython之mpy打包加密
2026-09-05
HX711-称重传感器概述
2026-08-28
hx711压力传感器(模块hx711 单片机esp32)
2026-08-28
HTML页面下发给巴法云(推送消息)
2026-07-22
生物试卷改卷系统,只适用八年级用
2026-07-17
基于 OpenCV 轮廓检测 + Tkinter 可视化界面 OMR(光学标记识别)阅卷程序
2026-07-15
定制化答题卡 OMR(光学标记识别)程序
2026-07-14
OpenCV 本地像素阅卷(脱离大模型 API、无算力限制、毫秒批量)
2026-07-12
扫码点餐微信小程序(打印版) 备注(2026年5月4日修改)
2026-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅