为什么 说“零基础使用自然语言也能学会写代码” 是成立的?

首先自然语言编程的本质不是 “写语法”,而是 “表达意图”

  • 传统认知:必须懂语法→必须懂芯片→必须懂寄存器→才能写代码
    代码 = 意图 + 规则 + 硬件约束
  • 现在
    • 意图:人用自然语言表达
    • 规则:AI 模型已经学会
    • 硬件约束:AI 模型已经学会

→ 零基础学习者只负责 “说清楚意图”,AI 负责把意图翻译成正确代码。

  • AI 闭环工作流:
    自然语言 → AI 理解需求了解MCU → AI 生成程序→ AI 编译 → AI 烧录 → AI 验证

刚开始学习者不需要懂底层,只需要懂 “我要什么效果”。这就大大的降低了学习门槛,短时间就会有获得感,成就感,容易循序渐进。持续提升。

现在要学习的是怎么尽量精确描述需求,我来给你整理一套嵌入式开发的自然语言提示词模板。

🎯 需求描述的基本结构

[外设类型] [引脚] [动作] [参数]

例如:GPIO PB22 输出 10Hz 方波

📋 常用外设提示词大全

1. GPIO(通用输入输出)

GPIO PB22 输出 1Hz 方波,占空比 50%

GPIO PA0 输出高电平点亮 LED

GPIO PB22 输入检测按键按下

GPIO PA1 输出 PWM 信号,频率 1kHz,占空比 30%

GPIO PC3 翻转输出,每 500ms 切换一次状态

2. PWM(脉宽调制)

PWM TIM1 通道1,PA0 输出,频率 10kHz,占空比 50%

PWM TIM2 通道3,PA10 输出 1kHz 方波,占空比可调 0-100%

PWM PB6 输出呼吸灯效果,频率 100Hz,占空比从 0% 渐变到 100%

PWM PA8 输出舵机控制信号,周期 20ms,脉宽 1.5ms(中位)

3. UART(串口通信)

UART1 PA9(TX) PA10(RX) 波特率 115200,发送 "Hello World"

UART2 接收数据,波特率 9600,收到数据后原样返回(回显)

UART1 每 1秒 发送一次温度值

4. ADC(模数转换)

ADC1 通道5 (PA5),读取电压值,每 100ms 采样一次

ADC1 扫描模式,读取 PA0-PA3 四个通道的电压

ADC2 连续转换模式,采样率 1kHz,DMA 传输到内存

5. TIM(定时器)

TIM2 定时器,每 1ms 中断一次,在中断里翻转 LED

TIM3 定时器,定时 5秒,超时后触发回调函数

TIM1 输入捕获,测量 PA0 上脉冲的宽度

6. I2C

I2C1 PB6(SCL) PB7(SDA) 读取温度传感器 TMP102 的数据

I2C1 向地址 0x50 的 EEPROM 写入 16 字节数据

I2C2 扫描总线上的所有设备地址

7. SPI

SPI1 PA5(SCK) PA6(MISO) PA7(MOSI) PA4(CS) 读取 W25Q64 闪存芯片 ID

SPI2 全双工通信,发送 0x55 并接收数据

SPI1 DMA 方式传输 256 字节数据

8. 中断与事件

外部中断 EXTI0,PA0 下降沿触发,按键按下时翻转 LED

外部中断 EXTI1,PB1 上升沿和下降沿都触发,记录电平变化时间

9. DMA(直接内存访问)

ADC1 DMA 循环模式,连续采样 1000 个点存入数组

UART1 DMA 发送,自动发送数组里的数据,不占用 CPU

TIM2 触发 DMA,每 1ms 从内存搬运数据到 GPIO

10. 看门狗

独立看门狗 IWDG,超时时间 1秒,主循环每 500ms 喂狗

窗口看门狗 WWDG,窗口期 50ms-100ms,提前或延后喂狗都复位

🔥 实际示例对比

有任何不明白的直接用PLAN模式问AI,opencode既可以写代码,也能学习。

比如不知道什么是看门狗,你就直接问,“什么是看门狗”

就这通俗易懂的解释,还能学不会?关键是学会提需求,不懂就多问AI。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐