当前位置: 首页 > article >正文

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

开启DeepSeek对话

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

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    GPIOA

void 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.kler.cn/a/584671.html

相关文章:

  • 如何优化AI模型的Prompt:深度指南
  • 基于jvisualvm的内存监控与远程连接配置指南
  • K8s 1.27.1 实战系列(十)PV PVC
  • C# Unity 唐老狮 No.9 模拟面试题
  • Vue:其他指令
  • Qt的QMenu 和 QAction的样式设置
  • golang从入门到做牛马:第二十篇-Go语言接口:行为的“契约”
  • C#类型转换大总结
  • 4.3 数组和集合的初始及赋值
  • 云原生可观测性:智能运维的数据中枢
  • DeepSeek-R1深度解读
  • HarmonyOS开发 - 电商App实例三( 网络请求axios)
  • nginx中proxy_pass和root的区别
  • STL-List模拟
  • 【QT】:QT图形化界面相关准备工作
  • 【python运行Janus-Pro-1B文生图功能】
  • 开源!速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器
  • 深入理解 RTP、RTCP、RTMP、RTSP、HLS 及 live555 推拉流实现
  • 【经验分享】SpringBoot集成Websocket开发 之 使用由 Jakarta EE 规范提供的 API开发
  • docker基本应用和相关指令