使用DeepSeek完成一个简单嵌入式开发

server/2025/3/14 20:43:43/

DeepSeek_0">开启DeepSeek对话

在这里插入图片描述
请帮我使用Altium Designer设计原理图、PCB,使用keil完成代码编写;要求:使用stm32F103RCT6为主控芯片,控制3个流水灯的原理图
这里需要注意,每次DeepSeek的回答都不太一样。

DeepSeek_5">DeepSeek回答

以下是使用STM32F103RCT6控制3个流水灯的完整设计流程,分为硬件设计和软件开发两部分:


一、硬件设计(Altium Designer)

1. 原理图设计

1.1 STM32最小系统

  • 主控芯片STM32F103RCT6(LQFP64封装)
  • 电源电路
    • 3.3V稳压芯片(如AMS1117-3.3)
    • 输入电容:10μF(陶瓷电容)
    • 输出电容:10μF + 0.1μF(滤波)
  • 复位电路
    • 10kΩ上拉电阻 + 100nF电容 + RESET按钮
  • 时钟电路
    • 8MHz晶振(并联2×22pF负载电容)
    • 32.768kHz RTC晶振(可选)

1.2 LED驱动电路

  • LED连接
    • 3个LED(D1-D3),每个串联220Ω限流电阻
    • 正极连接STM32的GPIO引脚(如PA0、PA1、PA2)
    • 负极接地(共地设计)

该图片未刷新出来
在这里插入图片描述


2. PCB设计

2.1 布局要点

  • 主控芯片居中,电源模块靠近电源输入
  • LED和电阻靠近板边(方便观察)
  • 晶振尽量靠近芯片,避免长走线

2.2 布线规则

  • 电源线宽:20mil(主电源)、15mil(3.3V)
  • 信号线宽:10-12mil
  • 间距:≥8mil
  • 添加地平面铺铜(降低噪声)

2.3 关键检查

  • DRC规则验证
  • 网络连通性检查
  • 3D模型装配验证

二、软件开发(Keil MDK)

1. 工程配置
// 文件结构
- Project/- CMSIS/              // STM32固件库- User/- main.c           // 主程序- stm32f10x_it.c   // 中断服务
2. 代码实现
#include "stm32f10x.h"// LED引脚定义
#define LED1_PIN    GPIO_Pin_0
#define LED2_PIN    GPIO_Pin_1
#define LED3_PIN    GPIO_Pin_2
#define LED_PORT    GPIOAvoid GPIO_Config(void) {GPIO_InitTypeDef GPIO_InitStructure;// 使能GPIOA时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 配置PA0-PA2为推挽输出GPIO_InitStructure.GPIO_Pin = LED1_PIN | LED2_PIN | LED3_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(LED_PORT, &GPIO_InitStructure);
}void Delay(uint32_t nCount) {for(; nCount != 0; nCount--);
}int main(void) {GPIO_Config();while(1) {// LED流水灯逻辑GPIO_SetBits(LED_PORT, LED1_PIN);GPIO_ResetBits(LED_PORT, LED2_PIN | LED3_PIN);Delay(500000);GPIO_SetBits(LED_PORT, LED2_PIN);GPIO_ResetBits(LED_PORT, LED1_PIN | LED3_PIN);Delay(500000);GPIO_SetBits(LED_PORT, LED3_PIN);GPIO_ResetBits(LED_PORT, LED1_PIN | LED2_PIN);Delay(500000);}
}

三、关键调试步骤

  1. 硬件调试

    • 测量3.3V电源是否稳定
    • 检查复位信号电平(正常为高电平)
    • 用万用表验证LED通路
  2. 软件调试

    • 使用ST-Link下载程序
    • 在Keil中单步调试GPIO寄存器
    • 调整Delay()参数控制流水速度

四、注意事项

  1. 焊接时注意STM32芯片方向(第1脚标识)
  2. LED极性:长脚为正极(原理图中需方向一致)
  3. 若使用硬件定时器替代Delay(),可提高代码效率

如需更详细的原理图符号/封装库或完整工程文件,可提供邮箱地址发送。

能否替代我-分析

1.首先我想要的是Altium Designer设计原理图、PCB文件,它没有给我工程文件,仅仅给出了一大堆原理图和PCB设计时候需要的注意事项;这里有个图片一直没有刷新出来,DeepSeek还需要多努力;
2.其次我想使用keil完成代码编写,也没有给到工程文件,仅仅给到我一些工程搭建步骤和注意事项,注意这里给出来了代码片段,代码基本上实现了三个流水的的动作逻辑;并且使用的管教就是原理图中的管教,软硬件有逻辑关系;
3.最后还贴心的给出来了调试步骤,嵌入式开发调试是非常关键的,这个调试步骤是有点经验的给出来的了,要先调试硬件,硬件先调试电源、复位、晶振等

能否替代我-结论

不可以替代码农,更不能替代硬件工程师,我想要DeepSeek给我原理图、PCB工程文件,我不想用Altium Designer画图,我想要keil工程,而不是代码片段,看来我不用AI焦虑了,至少10年,画板子、调代码的工作它还是取代不了我。让DeepSeek更强大吧!!!

后续

使用Altium Designer工程,最后是生成gerber文件和bom表,使用keil工程,主要是生成hex文件,我下次可以直接试试让DeepSeek直接生成gerber文件和bom表、hex文件,看看DeepSeek如何接招,哈哈哈!


http://www.ppmy.cn/server/174973.html

相关文章

深入理解pytest框架中的conftest.py:使用与作用原理

pytest是Python中最流行的测试框架之一,以其简洁、灵活和强大的功能而闻名。在pytest中,conftest.py文件是一个特殊的文件,用于共享测试配置、夹具(fixtures)和插件。理解conftest.py的使用和作用原理,可以…

ESP-IDF ubuntu版本 V5.2

1.MobaXterm 这个软件方面粘贴,文件拷贝 MobaXterm 2.安装之前请确保你安装了Python 和 pip V5.2需要python3.8和pip mkdir esp32 cd esp32 git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git cd esp-gitee-tools ./jihu-mirror.sh set cd .. git clone …

个人记录,Unity资源解压和管理插件

就是经典的两个AssetStudio 和 Ripper 没有什么干货,就是记录一下,内容没有很详细 AssetStudio 说错了,AssetStudio比较出名(曾经),但好像堕落了 是,AssetBundlExtractor 这个工具有个好处就…

数学建模 第一节

目录​​​​​​ 前言 一 优化模型的类型 二 线性规划1 线性规划2 三 0-1规划 总结 前言 数学建模主要是将问题转化为模型,然后再以编程的形式输出出来 算法都知道,数学建模也需要用到算法,但是不是主要以编程形式展示,而是…

Python 开发工程师面试问题及高质量答案

在 Python 开发工程师的面试中,除了考察候选人的编程能力外,还会涉及算法、数据结构、设计模式、数据库、Web 框架、多线程、网络编程等多个方面。本文将整理一些经典面试问题,并附上详尽的解答,希望能帮助求职者顺利通过 Python …

存储过程和自定义函数在银行信贷业务中的应用(oracle)

数据校验和清洗 例如,检查客户的年龄是否在合理范围内,贷款金额是否符合规定的上下限等。 对于不符合规则的数据,可以进行清洗和修正。比如,将空值替换为默认值,或者对错误的数据进行纠正。 CREATE OR REPLACE PROC…

OpenCV之颜色空间转换

颜色空间转换 打印所有的颜色空间转换标志 OpenCV中提供了许多颜色空间转换的函数,例如从BGR转换为灰度图、HSV等,这些转换函数,通常使用cv2.cvtCOLOR(),而颜色空间转换的标志都以COLOR_开头。 代码在Jupyter中运行 import cv2 f…

unittest vs pytest区别

unittest vs pytest 对比 ​unittest 像“手动挡汽车”:操作步骤多,规则严格,适合老司机。​pytest 像“自动挡汽车”:开起来轻松,功能强大,适合新手和高效开发。 区别点​unittest​(你学过的&…