2. 网络编程的流程服务器端流程:
创建套接字(socket)
绑定 IP 与端口(bind)
设置监听(listen)
等待客户端连接(accept)
数据收发(send/recv)
关闭连接(close)
客户端流程:
创建套接字
连接服务器(connect)
数据收发
关闭连接
3. 动态库与静态库的区别
动态库(.so):运行时加载,可执行文件小,更新库即可无需重编整个程序。
静态库(.a):编译时链接,可执行文件大,库变动需重新编译。
4. Linux 环境移植做了什么将 Linux 内核等关键文件进行压缩打包,复制到另一台设备,解压即可使用。
5. 简述 I²C,通信需要多少时钟周期
I²C(Inter-Integrated Circuit,集成电路间通信):同步、半双工,两根线:SCL、SDA。
发送 1 字节需 9 个时钟周期(8 位数据 + 1 位 ACK)。
6. 示波器和万用表做了什么
示波器:观察波形、测量时序。
万用表:测量电压、电阻、通断性。
7. 怎么测试文件读取速度(流程)
获取起始时间与结束时间
统计读取到的总字节数
...
一、4 层 PCB 设计专题1. 4 层 PCB 中最利于信号完整性的经典层叠结构是?
选项
:
A. 顶层(信号)→内层 1(地)→内层 2(电源)→底层(信号)
B. 顶层(电源)→内层 1(信号)→内层 2(信号)→底层(地)
C. 顶层(信号)→内层 1(信号)→内层 2(地)→底层(电源)
D. 顶层(地)→内层 1(信号)→内层 2(电源)→底层(信号)
答案:A
解析:该层叠让信号层紧邻地 / 电源层,可降低电磁干扰、减少信号反射,是保障信号完整性的经典方案。
拓展设问:若产品对电源抗干扰要求极高,4 层 PCB 层叠是否需要调整?如何调整?
2. 4 层 PCB 设计中,为减少信号串扰,顶层与底层的信号线走向应?
选项
:
A. 保持平行
B. 顶层水平、底层垂直(正交)
C. 随意交叉
D. 沿板边同向布线
答案:B
解析:正交走线可减少平行走线的电磁耦合,大幅降低层间信号串扰。
拓展设问:除了正交走线,还有哪些 PCB 布线技巧能减少信号串扰?
3. 4 层 PCB 的地平面设计中,以下正确的做法是?
选项
:
A. 为方便布线,在地平 ...
问题在提交代码或者拉取代码的时候,如果每次git都要输入用户名密码
解决方法
终端输入
1git config --global credential.helper store
在git push /pull 的时候输入一次账号和密码后,之后就不用在输账号和密码了。
引脚图
WSL配置
安装依赖:
1sudo apt-get install git wget flex bison gperf python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 net-tools
克隆 ESP 工具仓库:
1git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
克隆 ESP-IDF 仓库:
1git clone --recursive https://github.com/espressif/esp-idf.git
克隆 ESP32 板子仓库:
1git clone --recursive https://gitee.com/vi-iot/esp32-board.git
USB/IP 设备共享与管理USB/IP 是用于在 Windows 平台上进行远程 USB/IP 项目的守护进程,用于管理和共享 USB 设备。
步骤
...
💡通用技能类问题(对应你的技能描述部分)
你在项目中是如何进行模块化编程的?→ 考点:代码结构设计、函数封装、模块解耦思维。
在我的项目中,我尽量将每个功能进行独立封装,使其尽可能独立。比如在车控系统中,油门,刹车,胎压监控等功能模块分别设计成独立的单元,其实也是模仿了SquareLIne Studio低代码ui设计软件导出的ui文件夹格式,每个模块都通过接口与其他模块进行通信。这不仅提高了代码的可维护性,也方便后期的扩展和调试。每个模块有明确的输入和输出,减少了模块间的依赖关系,确保了系统的稳定性。
你使用 FreeRTOS 时,任务之间的通信是如何实现的?→ 考点:队列(Queue)、信号量(Semaphore)、互斥锁(Mutex)。
在FreeRTOS时,任务之间的通信通常使用信号量或队列。在我的遥控器项目中,我使用了队列集来传递来自遥感电位器ADC传感器的数据。此外,任务间需要同步时,我也是用了互斥锁信号量来保护共享内存。
你在多线程编程中如何避免资源竞争?→ 考点:互斥锁、信号量、临界区。
在多线程编程中,为了避免资源竞争,我使用了互斥锁(mutex)和信 ...
优化后项目总结与收获1. 平衡车在平衡车项目中,我实现了小车的平衡控制,效果良好。主要模块如下:
硬件:
MPU6050 六轴传感器
STM32F103CT86 最小系统板
TB6612 电机驱动模块
两个带编码器的减速电机
12V 电源(3节电池)
自制 PCB 板(嘉立创打板)
价值 80 元的底座
OLED 屏幕
NRF2401 无线通信模块(100m距离)
FreeRTOS 操作系统
2. 摇杆遥控器在遥控器项目中,实现了超远距离的控制。主要模块如下:
硬件:
STM32F103CT86 最小系统板
NRF2401 无线通信模块(100m)
OLED 屏幕
无源蜂鸣器
PS 游戏手柄 3D 摇杆电位器模块
纽扣电池
开关模块
PID 算法
FreeRTOS 操作系统
项目背景与动机对于这两个项目,我并没有使用老师提供的学习版,而是购买了 STM32F103 最小系统板进行开发。这样做的目的是提升自己的动手能力。通过使用 STM32F103 和 STM32F407,比较了两者的差异,并且深入学习了 STM32F103 的原理图制作、PCB 设计、FreeRTOS ...
大家好,我是张艺城,毕业于赣东学院自动化专业。虽然我没有正式的工作经验,但在学校期间我参与了多个嵌入式系统项目,积累了实际开发经验。我希望能成为一名嵌入式软件工程师,并通过我的技术能力为公司的发展做出贡献。
在学校,我参加了C语言竞赛并获得了第一名,提升了我的编程技能。此外,我还举办了一场Python讲座,帮助自己巩固了基础语法,并提高了沟通能力。
除了课程学习,我自学了C语言、Python、LVGL操作系统和Linux编程等技术,并在两个项目中得到了实践应用:
汽车仪表盘项目:我参与了基于LVGL的汽车仪表盘设计,负责系统架构和功能模块实现,如油门控制和转向灯的显示。
基于LVGL的平板电脑项目:这个项目包含7个功能模块,涉及天气显示、音乐播放器、聊天机器人等。特别是在音乐播放器中,我利用多线程和互斥锁处理共享资源,确保了系统的流畅运行。
我还深入理解了API接口调用,使用MQTT协议进行服务器通信,并通过Linux命令获取CPU和内存使用情况,展现了系统资源占用。
我拥有计算机二级Python证书、计算机网络三级证书,并通过了英语四级考试。
我热衷于嵌入式开发,具 ...
零成本搭建个人博客:Hexo + GitHub/Cloudflare 部署指南本文详细介绍了如何利用免费服务(Hexo、GitHub和Cloudflare)快速构建一个高效、简洁且零成本的个人博客网站。
一、 核心内容概览本教程涵盖以下主要步骤:
环境准备: 安装Node.js和Git。
配置Git和GitHub: 设置SSH密钥,创建GitHub仓库。
初始化Hexo项目: 安装Hexo,创建新博客结构。
部署到GitHub Pages: 配置部署设置,推送静态文件。
部署到Cloudflare Pages: 连接GitHub仓库,实现自动部署和加速。
基本使用方法: 创建、预览和发布新文章。
二、 事前准备与软件支持搭建博客需要准备相应的账号和软件支持。
1. 账号准备 (Prerequisites)
准备项
必要性
作用/说明
GitHub
必须
注册GitHub账号,用于存放博客源码和部署Pages服务。
Node
必须
Hexo运行所需的环境。
Git
必须
用于版本控制、连接GitHub和执行部署操作。
域名
非必须
可使用Gi ...
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
