
嵌入式代码,目前不容易被 AI 取代
相对互联网其他行业,嵌入式这行相对可能要特殊一点,代码的复制粘贴性没那么强,特别是底层的代码,嵌入式软件工程师相对就不容易被 AI 取代。
嵌入式底层的代码与硬件挂钩,硬件平台各种各样,换一个平台,代码或许就不能就正常运行了。
当然,不是说 AI 不能生成嵌入式底层的代码,很多“重复性”的代码,网上容易搜索到的代码,还是比较容易生成。比如:写一段51单片机串口发送的代码,基本上分分钟给你写出来。
// 定义波特率相关参数(11.0592MHz晶振,9600波特率)// 初始化串口void UART_Init() {TMOD &= 0x0F; // 清除定时器1配置TMOD |= 0x20; // 定时器1工作在模式2(8位自动重装载)TH1 = T1_RELOAD; // 装载初值TL1 = T1_RELOAD;TR1 = 1; // 启动定时器1SCON = 0x50; // 串口工作在模式1(8位UART,允许接收)ES = 0; // 关闭串口中断(仅发送时可关闭)EA = 1; // 开启总中断(若需中断可开启)}// 发送单个字符void UART_SendByte(unsigned char dat) {SBUF = dat; // 将数据写入发送缓冲器while (!TI); // 等待发送完成TI = 0; // 清除发送完成标志位}// 发送字符串void UART_SendString(unsigned char *str) {while (*str != '\0') { // 循环发送直到遇到结束符UART_SendByte(*str);str++;}}void main() {UART_Init(); // 初始化串口while (1) {UART_SendString("Hello, UART!\r\n"); // 发送测试字符串// 延时一段时间(简单延时函数,实际应用需根据需求调整)unsigned int i, j;for (i = 0; i < 30000; i++)for (j = 0; j < 10; j++);}}
你会发现,这种简单的、通用的代码,容易 AI 生成。但牵涉到特定场景、特殊需求的代码,AI出来的代码是没法用的。
比如,你让AI 写一段指定某厂家的电机驱动代码,编码器检测转速的代码。你在AI代码基础上修改,花的时间可能自己从零一步一步开始都写好了,甚至写得更好。
哪些代码容易被 AI 取代?
上面说了,针对特定场景、特殊需求的嵌入式代码,AI是没办法直接生成的,还是需要一步一步手写。
但是,有很多嵌入式代码是可以用 AI 来写的,那种简单的、通用性的、模板化的、重复性的代码是推荐大家 AI 生成。
