使用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);
}
}
三、关键调试步骤
-
硬件调试
- 测量3.3V电源是否稳定
- 检查复位信号电平(正常为高电平)
- 用万用表验证LED通路
-
软件调试
- 使用ST-Link下载程序
- 在Keil中单步调试GPIO寄存器
- 调整Delay()参数控制流水速度
四、注意事项
- 焊接时注意STM32芯片方向(第1脚标识)
- LED极性:长脚为正极(原理图中需方向一致)
- 若使用硬件定时器替代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如何接招,哈哈哈!