通义千问1.5-1.8B-Chat-GPTQ-Int4在Vue3前端开发中的应用
2026/4/28 17:12:24
普通二本电子信息工程专业毕业设计选题指南:从零构建一个嵌入式数据采集系统
摘要:许多电子信息工程专业学生在毕业设计阶段面临选题迷茫、技术栈薄弱、项目缺乏工程价值等痛点。本文聚焦新手入门视角,提供一个低门槛但具备完整工程闭环的选题方案——基于STM32与传感器的嵌入式数据采集系统。通过该实践,读者可掌握硬件选型、ADC采样、串口通信、上位机可视化等核心技能,并产出可展示、可扩展的毕设作品,显著提升答辩竞争力与工程能力。
一句话总结:老师想看的是“工程闭环”——需求→指标→设计→验证→复盘,而不是“功能菜单”。
| 器件 | 关键参数 | 理由 |
|---|---|---|
| STM32 | 72 MHz、12-bit ADC、64 KB Flash | 资料多、社区庞大、CubeMX支持好 |
| SHT30 | ±0.3 °C、I²C接口 | 比DHT11靠谱,且直接数字输出,无需ADC |
| BH1750 | 1 lx~65535 lx、I²C | 内置16-bit ADC,省掉模拟调理 |
| USB-TTL | CP2102/CH340均可 | 免驱,Windows/Linux即插即用 |
以下代码基于STM32CubeMX生成后手动整理,突出“单一职责”与“注释即文档”。
/* file: sensor_pack.c * brief: 统一传感器数据打包与发送 */ #include "sensor_pack.h" #include "crc8.h" static SensorFrame_t frame; void SensorPack_Update(float temp, float humi, uint16_t lux) { frame.head = FRAME_HEADER; frame.len = 12; frame.temp = (int16_t)(temp * 100); /* 0.01 °C 分辨率 */ frame.humi = (uint16_t)(humi * 100); /* 0.01 %RH */ frame.lux = lux; frame.crc = CRC8((uint8_t*)&frame, 11); } /* DMA发送,非阻塞 */ void SensorPack_SendDMA(UART_HandleTypeDef* huart) { HAL_UART_Transmit_DMA(huart, (uint8_t*)&frame, sizeof(frame)); }/* file: main.c 主循环 */ while (1) { if (HAL_GetTick() - tick_old >= 1000) { tick_old = HAL_GetTick(); SHT30_Read(&temp, &humi); BH1750_Read(&lux); SensorPack_Update(temp, humi, lux); SensorPack_SendDMA(&huart1); } }pip install pyserial matplotlibimport serial, struct, matplotlib.pyplot as plt from collections import deque ser = serial.Serial('COM3', 115200, timeout=0.1) temp_q = deque(maxlen=200) plt.ion() fig, ax = plt.subplots() li, = ax.plot(temp_q) while True: if ser.in_waiting >= 16: pkt = ser.read(16) if pkt[0:2] == b'\xaa\x55': temp_raw, = struct.unpack('<h', pkt[4:6]) temp_q.append(temp_raw/100.0) li.set_ydata(temp_q) ax.relim(); ax.autoscale_view() plt.pause(0.01)运行效果:窗口弹出,曲线每秒更新,横轴自动滚动,答辩老师直呼“专业”。
毕业设计不是“交作业”,而是把课堂知识串成最小可用产品的第一次机会。本文给出的嵌入式数据采集系统,代码不过两百行,硬件不足百元钱,却能把“电路-驱动-通信-可视化”完整闭环跑通。先让系统转起来,再去思考低功耗、无线化、边缘AI——一步步迭代,你的毕设就不再是“跑分”而是“作品”。祝焊接不炸锡,串口不丢包,答辩一次过。