如果让ChatGPT来写代码他会怎么写?

article/2024/9/20 10:59:08

一、前言

今天突发奇想想试一下如果让ChatGPT来写51代码会怎么样呢?今天我们就一起来看一下他会怎么写51代码,机器人写出来的代码到底可不可以运行?

在开始之前我们首先让ChatGPT做一个自我介绍吧!

问: ChatGPT介绍一下自己吧!

答: 当然,我很乐意介绍自己!我是ChatGPT,是一款基于人工智能技术的自然语言处理模型,由OpenAI公司开发。我的全称是"Conversational Generative Pre-trained Transformer",简称"GPT",目前最新的版本是GPT-3。

我使用深度学习技术,通过大量的自然语言文本数据进行训练,可以根据输入的问题或任务,生成符合语法和语义规则的自然语言回答或文本。我能够回答各种各样的问题,从科技和历史到文化和艺术,从日常生活到工作学习等方方面面。此外,我还可以用于自然语言处理、智能客服、机器翻译、文本摘要、情感分析等多种应用领域。

总之,我是一款强大的人工智能语言模型,可以为人们提供丰富的知识和智能服务。

二、让他写个点灯程序

问: 帮我用C语言写个51单片机的点灯程序吧!

答: 当然可以,以下是一个简单的51单片机的点灯程序,让LED灯每隔500毫秒闪烁一次:

#include <reg52.h>sbit LED = P1^0; // 定义P1.0口为LED灯的控制引脚void main() {while(1) { // 循环执行LED = 0; // 将P1.0口输出0,LED亮起来delay(500); // 延时500毫秒LED = 1; // 将P1.0口输出1,LED熄灭delay(500); // 延时500毫秒}
}// 延时函数,延时时间以毫秒为单位
void delay(unsigned int time) {unsigned int i,j;for(i=0;i<time;i++)for(j=0;j<125;j++);
}

这个程序定义了P1.0口为LED灯的控制引脚,并且使用了一个循环来不断切换LED灯的状态,从而实现LED灯每隔500毫秒闪烁一次。同时,程序中还定义了一个延时函数,用来控制每个状态的持续时间。

你可以把这个程序下载到你的51单片机上运行,即可看到LED灯每隔500毫秒闪烁一次。如果你想改变LED灯的闪烁频率,可以调整delay()函数中的延时时间。

从上面的分析可以看出ChatGPT写出来的代码居然还有注释,这点对于初学者是非常友好的,而且他写的代码是非常合理和正确的,如果让我写我可能写出来的和他差不多。

那如果让他写一个难点的串口程序会怎么样呢?下面我们一起来问一下它!

三、写个串口代码

问: 帮我用C语言写个51单片机的串口程序吧!

答: 以下是一个简单的51单片机串口程序示例,通过串口将数据发送到电脑端,并且接收电脑端发送的数据并输出到单片机的P2口,你可以参考这个程序进行学习和实验。

#include <reg52.h>  // 引入51单片机头文件
#include <intrins.h>#define FOSC 11059200UL // 系统晶振频率,单位为Hz
#define BAUD 9600       // 串口波特率unsigned char ReceiveData; // 串口接收到的数据/* 初始化串口 */
void InitSerial() {TMOD |= 0x20; // 设置为自动重装定时器1工作模式TH1 = TL1 = 256 - FOSC / 12 / 32 / BAUD; // 计算波特率重载值PCON &= 0x7F; // 波特率不加倍SCON = 0x50;  // 串口模式1,REN=1,允许串口接收TR1 = 1;      // 启动定时器1EA = ES = 1;  // 开启总中断和串口中断
}/* 串口发送数据 */
void SendByte(unsigned char dat) {SBUF = dat;          // 将数据写入串口发送缓存while(!TI);          // 等待发送完成TI = 0;              // 清除发送完成标志
}/* 串口接收中断处理函数 */
void ReceiveInterrupt() interrupt 4 {if(RI) {            // 判断是否接收到数据ReceiveData = SBUF; // 读取串口接收缓存中的数据RI = 0;         // 清除接收中断标志P2 = ReceiveData; // 输出接收到的数据}
}void main() {InitSerial(); // 初始化串口while(1) {SendByte('H');   // 发送字符'H'SendByte('i');   // 发送字符'i'SendByte(0x0d);  // 发送回车符SendByte(0x0a);  // 发送换行符DelayMs(1000);   // 延时1秒}
}

这个程序的功能是每隔一秒钟通过串口发送"H\r\n"字符,同时通过串口接收电脑端发送的数据并输出到单片机的P2口上。你需要注意的是,这个程序只是一个简单的示例,如果你想要进行更复杂的操作,需要根据自己的需求进行修改。

我们看到他写的代码只封装了一个发送单个字符的函数,那他可不可以给我们封装出来一个能够发送字符串的

当然可以,下面是一个简单的示例:

void send_string(char *str) {while (*str) {SBUF = *str++;while (TI == 0);TI = 0;}
}

这个函数的参数是一个字符串指针,然后它使用串口发送这个字符串中的每个字符。每发送一个字符后,函数会等待串口发送完成,然后才会继续发送下一个字符,以确保每个字符都能被正确发送。

整体来说他写的代码还是非常不错的,但是我试了一下,上面的代码是可以编译和运行的。

下面难度升级,让他帮忙写个Linux驱动试试!

四、写个GPIO的Linux驱动

问: 可以帮我写一个Linux环境下的控制GPIO的驱动和应用程序吗?

答: 当然可以。以下是一个基本的GPIO驱动程序和应用程序,它们可以在Linux环境下使用。

首先是GPIO驱动程序的代码,它使用了Linux内核提供的GPIO子系统:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/gpio.h>
#include <linux/interrupt.h>
#include <linux/delay.h>MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");#define GPIO_LED 17
#define GPIO_BUTTON 27static irqreturn_t button_isr(int irq, void *data) {printk(KERN_INFO "Button pressed!\n");gpio_set_value(GPIO_LED, 1);mdelay(500);gpio_set_value(GPIO_LED, 0);return IRQ_HANDLED;
}static int __init gpio_init(void) {int ret = 0;if (!gpio_is_valid(GPIO_LED) || !gpio_is_valid(GPIO_BUTTON)) {printk(KERN_INFO "Invalid GPIO!\n");return -ENODEV;}gpio_request(GPIO_LED, "led");gpio_direction_output(GPIO_LED, 0);gpio_request(GPIO_BUTTON, "button");gpio_direction_input(GPIO_BUTTON);ret = gpio_request_one(GPIO_BUTTON, GPIOF_IN, "button");if (ret < 0) {printk(KERN_INFO "Failed to request GPIO button\n");return ret;}ret = request_irq(gpio_to_irq(GPIO_BUTTON), button_isr, IRQF_TRIGGER_FALLING, "button_irq", NULL);if (ret < 0) {printk(KERN_INFO "Failed to request IRQ for GPIO button\n");return ret;}printk(KERN_INFO "GPIO module loaded\n");return 0;
}static void __exit gpio_exit(void) {gpio_set_value(GPIO_LED, 0);free_irq(gpio_to_irq(GPIO_BUTTON), NULL);gpio_free(GPIO_LED);gpio_free(GPIO_BUTTON);printk(KERN_INFO "GPIO module unloaded\n");
}module_init(gpio_init);
module_exit(gpio_exit);

这个驱动程序注册了一个GPIO中断处理函数,在GPIO_BUTTON引脚触发下降沿时执行。当中断处理函数被调用时,它会打印一条消息并控制GPIO_LED引脚来实现一个简单的闪烁效果。

下面是一个简单的GPIO应用程序,它可以通过命令行参数控制GPIO的状态:

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>#define GPIO_LED 17void usage() {printf("Usage: gpio <on|off>\n");
}int main(int argc, char *argv[]) {int fd;if (argc < 2) {usage();return 1;}fd = open("/sys/class/gpio/export", O_WRONLY);if (fd < 0) {perror("Failed to export GPIO");return 1;}write(fd, "17", 2);close(fd);fd = open("/sys/class/gpio/gpio17/direction", O_WRONLY);if (fd < 0) {perror("Failed to set GPIO direction");return 1;}write(fd, "out", 3);close(fd);fd = open("/sys/class/gpio/gpio17/value", O_WRONLY);if (fd < 0) {perror("Failed to

下面是ChatGPT对于上面程序的分析:

当你在Linux系统中运行该代码时,应用程序将会调用对应的设备驱动程序,该驱动程序将会初始化GPIO的操作,即对GPIO进行初始化配置,包括设置GPIO的输入输出模式、设置引脚方向、设置电平等。当应用程序需要控制GPIO时,会向驱动程序发送相应的指令,例如打开GPIO输出、关闭GPIO输出等指令,驱动程序接收到指令后执行相应的操作,从而控制GPIO的状态。

具体来说,该程序中包含了头文件的引用、设备的打开、ioctl函数的调用以及设备的关闭。头文件的引用包含了一些宏定义和函数声明,它们定义了驱动程序需要使用的一些常量和函数。设备的打开通过open系统调用实现,调用成功后将返回文件描述符。ioctl函数用来发送命令给驱动程序,该函数的第一个参数为文件描述符,第二个参数为命令,第三个参数为可选的数据结构,该函数返回值为执行的结果。设备的关闭通过close系统调用实现,关闭成功后将释放文件描述符。

总体而言,该代码实现了在Linux环境下控制GPIO的基本功能,可作为GPIO驱动程序的模板进行开发。

使用感受

总的来说,我认为ChatGPT的使用感受非常好,可以为用户提供快速便捷的解决问题的方法,并且不需要使用特殊的技巧或知识,但是其中有些回答还是不够拟人话,有些回答过于书面,不过这也能理解,毕竟他还是个机器人嘛!

但是不得不说他相较于其他软件来说还是相当只能的,基本上你问出的问题他都能回答出来。最后再问他一个大家最关心的问题,人工智能会不会取代人类!在这里插入图片描述

👇点击下方公众号卡片获取资料👇

http://chatgpt.dhexx.cn/article/jkAg9Q3v.shtml

相关文章

快来看,我让chatGPT帮我写代码了!!!

现在AIGC很火&#xff0c;chatGPT的功能也是非常的强大&#xff0c;作为一个学计算机的&#xff0c;我想chatGPT必须要玩起来&#xff0c;哈哈哈哈&#xff5e;&#xff5e;&#xff5e; 突发奇想&#xff0c;虽然学了几年的计算机&#xff0c;但是编程能力还是不行&#xff0c…

怎么用ChatGPT写代码,ChatGPT怎么改代码修BUG

ChatGPT 是一个自然语言处理模型&#xff0c;可以模拟人类语言生成文本&#xff0c;可以用于写代码和修复bug。在本文中&#xff0c;说一下我的经验&#xff0c;如何使用 ChatGPT 写代码和修bug。 怎么用ChatGPT写代码&#xff1f; 虽然 ChatGPT 被广泛用于文本生成&#xff0…

ChatGPT可以写代码吗【详解】

ChatGPT可以写代码吗&#xff1f;ChatGPT可以实现很多的操作&#xff0c;用户只要说出自己的需求&#xff0c;ChatGPT就可以帮助你进行解答&#xff0c;比如写代码&#xff0c;只要在对话框输入问题&#xff0c;就可以得到答案&#xff0c;操作很简单。具体的方法小编已经给大家…

【ChatGPT实战】11.如何使用ChatGPT写代码?

以往大家总是调侃说程序员只要会用Google就好了&#xff0c;直接搜对应的代码然后复制粘贴就可以了。但是只有程序员才知道真要找到可用的代码是不容易的&#xff0c;经常是找很久都没有合适的代码。 ChatGPT在编程方面拥有着不可忽视的优势&#xff0c;能够生成高质量的程序代…

人工智能写的十段代码,九个通过测试了

“抢走你工作的不会是 AI &#xff0c;而是先掌握 AI 能力的人” 编程测试 1. 我想用golang实现二叉树前序&#xff0c;请你帮我写一下代码。 // 定义二叉树节点 type TreeNode struct {Val intLeft *TreeNodeRight *TreeNode }// 前序遍历 func PreOrderTraversal(root *Tre…

OpenAI ChatGPT 我也体验了一下自动写程序

大家好最近 ChatGPT非常出圈&#xff0c;于是我也出于好奇心试用了一下自动写代码&#xff0c; 先写一个简单程序吧 在写一个有点难度的吧 import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.…

ChatGPT三问:是什么、从哪来、去往哪?

©PaperWeekly 原创 作者 | 张燚钧 单位 | 中国移动云能力中心 研究方向 | 预训练大模型 ChatGPT 热潮已经持续月余&#xff0c;目前热度依然不减。根据最新的消息&#xff0c;ChatGPT 的升级版 GPT-4 也已蓄势待发。回首 ChatGPT 的这波热潮&#xff0c;ChatGPT 是什么&a…

chatgpt在哪用?详谈一下gpt的各方面

ChatGPT是一种人工智能技术&#xff0c;它可以通过自然语言交互回答各种问题。这种技术已经被广泛应用于各个领域和场景中&#xff0c;帮助人们更好地获取知识和信息。那么&#xff0c;ChatGPT在哪里使用呢&#xff1f;下面我们来探讨一下。 一.chatgpt在哪用 打开任意的浏览器…

Voice Control for ChatGPT 轻松实现使用语音与ChatGPT进行对话。

缘由 日常生活中&#xff0c;我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的&#xff0c;毕竟相对于文字来说语音就不会显的那么的苍白无力&#xff0c;同时最大的好处就是能解放我们的双手吧&#xff0c;能更快实现两者间的对话&#xff0c;沟通便更高效了。Voice Co…

【插件分享】对Chatgpt的对话内容进行滚动截屏

问题描述 在和Chatgpt进行了一番友好的对话后&#xff0c;想要把对话内容截取出来与朋友分享&#xff0c;但是由于对话内容比较多&#xff0c;无法显示在一页里&#xff0c;因此需要使用滚动截屏。但是edge浏览器自带的网页捕获功能在chatgpt的聊天界面里无法实现滚动截屏。 解…

使用chatgpt完成简繁体转换

tl;dr: 语言模型可以完成简繁转换&#xff0c;还会故意出错以测试人类是否在认真阅读答案。 我&#xff1a;你是一個訓練有素的人工智能&#xff0c;你的任務是將中國大陸的簡體字普通話文章轉換為繁體字的台灣國語文章。例如&#xff0c;我輸入「计算机的内存不足&#xff0c;…

数据库开发工具界的ChatGPT来了

提提需求&#xff0c;就能按照你的要求自动生成库表、构建测试数据、查询变更数据&#xff0c;动不动还要帮你优化 SQL …… 这样的数据库开发工具到底有多强大&#xff1f; NineData 通过内置强大的AI生成能力&#xff0c;让你可以在 NineData 平台上&#xff0c;通过自然语言…

基于ChatGPT的端到端语音聊天机器人项目实战(一)

基于ChatGPT的端到端语音聊天机器人项目实战 ChatGPT API后台开发实战 本节主要是跟大家分享一个端到端的基于模型驱动的对话机器人,会有前端和后端,也会有一些具体模型的调用,读者需具有Python语言编程的基础,这是前置性的条件,有了这个基础,理论上讲本节所有的内容,…

基于Python+百度语音的智能语音ChatGPT聊天机器人(机器学习+深度学习+语义识别)含全部工程源码 适合个人二次开发

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境Pycharm 环境ChatterBot 环境 模块实现1. 模型构建2. 服务器端3. 客户端4. 语音录入5. 接口调用6.模型训练及保存 系统测试1. 模型效果2. 模型应用 源代码下载地址其它资料下载 前言 本项目基于机器学习和语义识…

chatgpt的语音机器人

准备工作 一.OpenAi的Api 1.登录openai 2.点击Develovpers的overview ### 3.点击右上角的Login in ### 4.点击右上角的view apikey ### 5.点击Creat new secret key 这样就会得到一个chatgpt的api&#xff0c;请妥善保存这个api&#xff0c;当你关闭这个网页的时候&#xff…

OpenAI推出iOS版ChatGPT,支持语音输入

北京时间5月19日凌晨&#xff0c;OpenAI重磅推出iOS版ChatGPT。 据介绍&#xff0c;iOS版ChatGPT供免费使用&#xff0c;并在不同设备上同步聊天历史。 同时&#xff0c;它还集成了开源语音识别系统Whisper&#xff0c;可以实现语音输入。 另外&#xff0c;ChatGPT Plus用户在i…

【一分钟学会】用python做一个语音对话ChatGPT的程序——打造私人语音助手

本项目灵感来源是我的一个专业课程设计&#xff0c;当时耗时近四天在网上都没找到十分有用的信息。 以下是本项目完整的步骤流程&#xff0c;算是对自己工作的一个阶段性总结。希望同感兴趣的小伙伴们相互探讨、交流和学习。 一、准备工作 首先&#xff0c;需要准备①最新版的…

基于ChatGPT的端到端语音聊天机器人项目实战(三)

企业级ChatGPT开发入门实战 第1课 基于ChatGPT的端到端语音聊天机器人项目实战 Gavin老师:NLP_Matrix_Space 1.4 使用FastAPI构建语音聊天机器人后端实战 在后端代码(backend)中调用了OpenAI API及其他的服务,如图1-10所示。 图1- 10 后端代码调用OpenAI API openai_requ…

OpenAI Whisper and ChatGPT 语音助手

OpenAI Whisper and ChatGPT ASR Gradio Web UI 一 环境准备1.1 python1.2 windows 二 导入所需要的包三 加载模型四 定义openai和whisper接口五 生成Gradio Web UI 麦克风输入&#xff0c;展示三种结果 输入ASR结果输出文本输出TTS结果 一 环境准备 1.1 python gradio3.19.1…

ChatGPT+语音 实现人机“对话“

你可以向ChatGPT "说出" 任何问题&#xff0c;ChatGPT会将答案 "说"给你听。 当你向ChatGPT提问数学问题时&#xff0c;ChatGPT将解题思路完整的说给你听&#xff0c;当你还有不懂的地方还可以继续提问&#xff0c;直到你完全理解。最好的全科辅导老师&…