利用chatGPT编写一段STM32协议解析的程序

随着chatgpt的火爆,在网上纷纷讨论最先被chatgpt淘汰的会是什么行业,其中类似小编的“程序员”赫然在列,并且排名前三。
起初,小编不信邪,我们是编写出ai程序的人员,怎么可能会被ai淘汰。最近,当我尝试让chatgpt编写一段协议解析的代码时,彻底被震惊到!
一:第一次命令输入
当我向chatgpt输入我的协议格式时,chatgpt直接根据我的要求输出了完成的源代码。
下面将源码贴上
#include stm32f4xx_hal.h#define packet_start_byte 0x7e#define packet_end_byte 0x7e#define max_packet_size 20 // 最大数据包大小,根据实际情况调整typedef struct { uint8_t device_address; uint8_t command; uint8_t data_length; uint8_t data[max_packet_size]; uint8_t checksum; uint8_t is_valid;} serialpacket;serialpacket received_packet;void hal_uart_rxcpltcallback(uart_handletypedef *huart) { static uint8_t buffer[max_packet_size]; static uint8_t buffer_index = 0; static uint8_t is_inside_packet = 0; if (huart == &huart2) { if (!is_inside_packet) { if (buffer_index == 0 && received_byte == packet_start_byte) { is_inside_packet = 1; buffer[buffer_index++] = received_byte; } } else { buffer[buffer_index++] = received_byte; if (buffer_index >= 4) { uint8_t data_length = buffer[3] - 2; // 计算数据区长度(不包括校验和和包尾) if (buffer_index == (data_length + 6)) { // 收到完整的数据包 received_packet.device_address = buffer[1]; received_packet.command = buffer[2]; received_packet.data_length = data_length; for (int i = 0; i = 4) { uint8_t data_length = rx_buffer[3] - 2; // 计算数据区长度(不包括校验和和包尾) if (rx_buffer_index == (data_length + 6)) { // 收到完整的数据包 received_packet.device_address = rx_buffer[1]; received_packet.command = rx_buffer[2]; received_packet.data_length = data_length; for (int i = 0; i < data_length; i++) { received_packet.data[i] = rx_buffer[4 + i]; } received_packet.checksum = rx_buffer[data_length + 4]; received_packet.is_valid = 1; process_received_data(); // 处理接收到的数据包 // 启动下一次接收中断 hal_uart_receive_it(&huart2, rx_buffer, 1); } } } }}int main(void) { // 初始化hal库和串口2 hal_init(); systemclock_config(); mx_gpio_init(); mx_usart2_uart_init(); // 启动接收中断 hal_uart_receive_it(&huart2, rx_buffer, 1); while (1) { // 在这里可以执行其他任务 // ... }}经过第二次的调整,已经产生了满足我的要求的源代码文件。 三:总结及应对挑战
经过两次短暂的输入,chatgpt即产生了“初级程序员”所具备的能力编写的代码。当随着我们命令的更深层次的输入,chatgpt肯定会产生更符合我们要求的内容/代码。 作为嵌入式工程师,chatgpt的强大功能可能对我们构成潜在竞争和挑战。 为应对这种竞争和挑战,我们需要采取各类措施来应对挑战:如下的内容也是chatgpt告诉我们的:
其中一条:持续学习和更新技能,在任何时代、任何领域都是保持自身竞争力的手段之一。


cob显示屏和拼接屏,它们的优点是什么
化解先进半导体封装挑战,有一个工艺不能不说
电感品质因子参数对于谐振电路的影响
可控硅电压调整器的原理特点及安装注意事项
华为p10最新消息:华为P10价格高成本涨,发布首日销售额过亿
利用chatGPT编写一段STM32协议解析的程序
坐标机器人脱皮芝麻袋子缝包码垛生产线
汽车芯片AECQ100认证测试,AEC-Q100认证是什么
功率放大器的基本要求有哪些(功率放大器的组成部分)
Binance为DEX非托管市场构建了自己的区块链
简单实用的遥控器检测仪电路图
微软Windows拥抱Linux的思考
领克02接触评价:积极创新设计,100分可以打95分
小米电视5 Pro全系支持8K解码,将于本月12日开售
基于LabView的频率稳定度测量原理和应用设计
如何降低机器学习使用“门槛”,机器学习就是AWS的下一个金矿
电动机绕组崩烧的原因有哪些
AFE8092IABJ 宽带宽多通道收发器的中文资料
新思科技发布TestMAX系列产品 重新界定测试的预期
DevOps转型成功之路及转型的意义