chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如果讓ChatGPT來(lái)寫(xiě)代碼他會(huì)怎么寫(xiě)?

嵌入式悅翔園 ? 來(lái)源:嵌入式悅翔園 ? 2023-03-01 10:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、前言

今天突發(fā)奇想想試一下如果讓ChatGPT來(lái)寫(xiě)51代碼會(huì)怎么樣呢?今天我們就一起來(lái)看一下他會(huì)怎么寫(xiě)51代碼,機(jī)器人寫(xiě)出來(lái)的代碼到底可不可以運(yùn)行?

在開(kāi)始之前我們首先讓ChatGPT做一個(gè)自我介紹吧!

問(wèn): ChatGPT介紹一下自己吧!

答: 當(dāng)然,我很樂(lè)意介紹自己!我是ChatGPT,是一款基于人工智能技術(shù)的自然語(yǔ)言處理模型,由OpenAI公司開(kāi)發(fā)。我的全稱是"Conversational Generative Pre-trained Transformer",簡(jiǎn)稱"GPT",目前最新的版本是GPT-3。

我使用深度學(xué)習(xí)技術(shù),通過(guò)大量的自然語(yǔ)言文本數(shù)據(jù)進(jìn)行訓(xùn)練,可以根據(jù)輸入的問(wèn)題或任務(wù),生成符合語(yǔ)法和語(yǔ)義規(guī)則的自然語(yǔ)言回答或文本。我能夠回答各種各樣的問(wèn)題,從科技和歷史到文化和藝術(shù),從日常生活到工作學(xué)習(xí)等方方面面。此外,我還可以用于自然語(yǔ)言處理、智能客服、機(jī)器翻譯、文本摘要、情感分析等多種應(yīng)用領(lǐng)域。

總之,我是一款強(qiáng)大的人工智能語(yǔ)言模型,可以為人們提供豐富的知識(shí)和智能服務(wù)。

二、讓他寫(xiě)個(gè)點(diǎn)燈程序

問(wèn): 幫我用C語(yǔ)言寫(xiě)個(gè)51單片機(jī)的點(diǎn)燈程序吧!

答: 當(dāng)然可以,以下是一個(gè)簡(jiǎn)單的51單片機(jī)的點(diǎn)燈程序,讓LED燈每隔500毫秒閃爍一次:

#include

sbitLED=P1^0;//定義P1.0口為L(zhǎng)ED燈的控制引腳

voidmain(){
while(1){//循環(huán)執(zhí)行
LED=0;//將P1.0口輸出0,LED亮起來(lái)
delay(500);//延時(shí)500毫秒
LED=1;//將P1.0口輸出1,LED熄滅
delay(500);//延時(shí)500毫秒
}
}

//延時(shí)函數(shù),延時(shí)時(shí)間以毫秒為單位
voiddelay(unsignedinttime){
unsignedinti,j;
for(i=0;ifor(j=0;j<125;j++);
}

這個(gè)程序定義了P1.0口為L(zhǎng)ED燈的控制引腳,并且使用了一個(gè)循環(huán)來(lái)不斷切換LED燈的狀態(tài),從而實(shí)現(xiàn)LED燈每隔500毫秒閃爍一次。同時(shí),程序中還定義了一個(gè)延時(shí)函數(shù),用來(lái)控制每個(gè)狀態(tài)的持續(xù)時(shí)間。

你可以把這個(gè)程序下載到你的51單片機(jī)上運(yùn)行,即可看到LED燈每隔500毫秒閃爍一次。如果你想改變LED燈的閃爍頻率,可以調(diào)整delay()函數(shù)中的延時(shí)時(shí)間。

從上面的分析可以看出ChatGPT寫(xiě)出來(lái)的代碼居然還有注釋,這點(diǎn)對(duì)于初學(xué)者是非常友好的,而且他寫(xiě)的代碼是非常合理和正確的,如果讓我寫(xiě)我可能寫(xiě)出來(lái)的和他差不多。

那如果讓他寫(xiě)一個(gè)難點(diǎn)的串口程序會(huì)怎么樣呢?下面我們一起來(lái)問(wèn)一下它!

三、寫(xiě)個(gè)串口代碼

問(wèn): 幫我用C語(yǔ)言寫(xiě)個(gè)51單片機(jī)的串口程序吧!

答: 以下是一個(gè)簡(jiǎn)單的51單片機(jī)串口程序示例,通過(guò)串口將數(shù)據(jù)發(fā)送到電腦端,并且接收電腦端發(fā)送的數(shù)據(jù)并輸出到單片機(jī)的P2口,你可以參考這個(gè)程序進(jìn)行學(xué)習(xí)和實(shí)驗(yàn)。

#include//引入51單片機(jī)頭文件
#include

#defineFOSC11059200UL//系統(tǒng)晶振頻率,單位為Hz
#defineBAUD9600//串口波特率

unsignedcharReceiveData;//串口接收到的數(shù)據(jù)

/*初始化串口*/
voidInitSerial(){
TMOD|=0x20;//設(shè)置為自動(dòng)重裝定時(shí)器1工作模式
TH1=TL1=256-FOSC/12/32/BAUD;//計(jì)算波特率重載值
PCON&=0x7F;//波特率不加倍
SCON=0x50;//串口模式1,REN=1,允許串口接收
TR1=1;//啟動(dòng)定時(shí)器1
EA=ES=1;//開(kāi)啟總中斷和串口中斷
}

/*串口發(fā)送數(shù)據(jù)*/
voidSendByte(unsignedchardat){
SBUF=dat;//將數(shù)據(jù)寫(xiě)入串口發(fā)送緩存
while(!TI);//等待發(fā)送完成
TI=0;//清除發(fā)送完成標(biāo)志
}

/*串口接收中斷處理函數(shù)*/
voidReceiveInterrupt()interrupt4{
if(RI){//判斷是否接收到數(shù)據(jù)
ReceiveData=SBUF;//讀取串口接收緩存中的數(shù)據(jù)
RI=0;//清除接收中斷標(biāo)志
P2=ReceiveData;//輸出接收到的數(shù)據(jù)
}
}

voidmain(){
InitSerial();//初始化串口
while(1){
SendByte('H');//發(fā)送字符'H'
SendByte('i');//發(fā)送字符'i'
SendByte(0x0d);//發(fā)送回車符
SendByte(0x0a);//發(fā)送換行符
DelayMs(1000);//延時(shí)1秒
}
}

這個(gè)程序的功能是每隔一秒鐘通過(guò)串口發(fā)送"H "字符,同時(shí)通過(guò)串口接收電腦端發(fā)送的數(shù)據(jù)并輸出到單片機(jī)的P2口上。你需要注意的是,這個(gè)程序只是一個(gè)簡(jiǎn)單的示例,如果你想要進(jìn)行更復(fù)雜的操作,需要根據(jù)自己的需求進(jìn)行修改。

我們看到他寫(xiě)的代碼只封裝了一個(gè)發(fā)送單個(gè)字符的函數(shù),那他可不可以給我們封裝出來(lái)一個(gè)能夠發(fā)送字符串的

當(dāng)然可以,下面是一個(gè)簡(jiǎn)單的示例:

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

這個(gè)函數(shù)的參數(shù)是一個(gè)字符串指針,然后它使用串口發(fā)送這個(gè)字符串中的每個(gè)字符。每發(fā)送一個(gè)字符后,函數(shù)會(huì)等待串口發(fā)送完成,然后才會(huì)繼續(xù)發(fā)送下一個(gè)字符,以確保每個(gè)字符都能被正確發(fā)送。

整體來(lái)說(shuō)他寫(xiě)的代碼還是非常不錯(cuò)的,但是我試了一下,上面的代碼是可以編譯和運(yùn)行的。

下面難度升級(jí),讓他幫忙寫(xiě)個(gè)Linux驅(qū)動(dòng)試試!

四、寫(xiě)個(gè)GPIO的Linux驅(qū)動(dòng)

問(wèn): 可以幫我寫(xiě)一個(gè)Linux環(huán)境下的控制GPIO的驅(qū)動(dòng)和應(yīng)用程序嗎?

答: 當(dāng)然可以。以下是一個(gè)基本的GPIO驅(qū)動(dòng)程序和應(yīng)用程序,它們可以在Linux環(huán)境下使用。

首先是GPIO驅(qū)動(dòng)程序的代碼,它使用了Linux內(nèi)核提供的GPIO子系統(tǒng):

#include
#include
#include
#include
#include
#include

MODULE_LICENSE("GPL");
MODULE_AUTHOR("YourName");

#defineGPIO_LED17
#defineGPIO_BUTTON27

staticirqreturn_tbutton_isr(intirq,void*data){
printk(KERN_INFO"Buttonpressed!
");
gpio_set_value(GPIO_LED,1);
mdelay(500);
gpio_set_value(GPIO_LED,0);
returnIRQ_HANDLED;
}

staticint__initgpio_init(void){
intret=0;
if(!gpio_is_valid(GPIO_LED)||!gpio_is_valid(GPIO_BUTTON)){
printk(KERN_INFO"InvalidGPIO!
");
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(ret0){
printk(KERN_INFO"FailedtorequestGPIObutton
");
returnret;
}
ret=request_irq(gpio_to_irq(GPIO_BUTTON),button_isr,IRQF_TRIGGER_FALLING,"button_irq",NULL);
if(ret0){
printk(KERN_INFO"FailedtorequestIRQforGPIObutton
");
returnret;
}
printk(KERN_INFO"GPIOmoduleloaded
");
return0;
}

staticvoid__exitgpio_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"GPIOmoduleunloaded
");
}

module_init(gpio_init);
module_exit(gpio_exit);

這個(gè)驅(qū)動(dòng)程序注冊(cè)了一個(gè)GPIO中斷處理函數(shù),在GPIO_BUTTON引腳觸發(fā)下降沿時(shí)執(zhí)行。當(dāng)中斷處理函數(shù)被調(diào)用時(shí),它會(huì)打印一條消息并控制GPIO_LED引腳來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的閃爍效果。

下面是一個(gè)簡(jiǎn)單的GPIO應(yīng)用程序,它可以通過(guò)命令行參數(shù)控制GPIO的狀態(tài):

#include
#include
#include
#include

#defineGPIO_LED17

voidusage(){
printf("Usage:gpio
");
}

intmain(intargc,char*argv[]){
intfd;
if(argc2){
usage();
return1;
}
fd=open("/sys/class/gpio/export",O_WRONLY);
if(fd0){
perror("FailedtoexportGPIO");
return1;
}
write(fd,"17",2);
close(fd);
fd=open("/sys/class/gpio/gpio17/direction",O_WRONLY);
if(fd0){
perror("FailedtosetGPIOdirection");
return1;
}
write(fd,"out",3);
close(fd);
fd=open("/sys/class/gpio/gpio17/value",O_WRONLY);
if(fd0){
perror("Failedto

下面是ChatGPT對(duì)于上面程序的分析:

當(dāng)你在Linux系統(tǒng)中運(yùn)行該代碼時(shí),應(yīng)用程序?qū)?huì)調(diào)用對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序?qū)?huì)初始化GPIO的操作,即對(duì)GPIO進(jìn)行初始化配置,包括設(shè)置GPIO的輸入輸出模式、設(shè)置引腳方向、設(shè)置電平等。當(dāng)應(yīng)用程序需要控制GPIO時(shí),會(huì)向驅(qū)動(dòng)程序發(fā)送相應(yīng)的指令,例如打開(kāi)GPIO輸出、關(guān)閉GPIO輸出等指令,驅(qū)動(dòng)程序接收到指令后執(zhí)行相應(yīng)的操作,從而控制GPIO的狀態(tài)。

具體來(lái)說(shuō),該程序中包含了頭文件的引用、設(shè)備的打開(kāi)、ioctl函數(shù)的調(diào)用以及設(shè)備的關(guān)閉。頭文件的引用包含了一些宏定義和函數(shù)聲明,它們定義了驅(qū)動(dòng)程序需要使用的一些常量和函數(shù)。設(shè)備的打開(kāi)通過(guò)open系統(tǒng)調(diào)用實(shí)現(xiàn),調(diào)用成功后將返回文件描述符。ioctl函數(shù)用來(lái)發(fā)送命令給驅(qū)動(dòng)程序,該函數(shù)的第一個(gè)參數(shù)為文件描述符,第二個(gè)參數(shù)為命令,第三個(gè)參數(shù)為可選的數(shù)據(jù)結(jié)構(gòu),該函數(shù)返回值為執(zhí)行的結(jié)果。設(shè)備的關(guān)閉通過(guò)close系統(tǒng)調(diào)用實(shí)現(xiàn),關(guān)閉成功后將釋放文件描述符。

總體而言,該代碼實(shí)現(xiàn)了在Linux環(huán)境下控制GPIO的基本功能,可作為GPIO驅(qū)動(dòng)程序的模板進(jìn)行開(kāi)發(fā)。

使用感受

總的來(lái)說(shuō),我認(rèn)為ChatGPT的使用感受非常好,可以為用戶提供快速便捷的解決問(wèn)題的方法,并且不需要使用特殊的技巧或知識(shí),但是其中有些回答還是不夠擬人話,有些回答過(guò)于書(shū)面,不過(guò)這也能理解,畢竟他還是個(gè)機(jī)器人嘛!

但是不得不說(shuō)他相較于其他軟件來(lái)說(shuō)還是相當(dāng)只能的,基本上你問(wèn)出的問(wèn)題他都能回答出來(lái)。最后再問(wèn)他一個(gè)大家最關(guān)心的問(wèn)題,人工智能會(huì)不會(huì)取代人類!357dd4aa-b1b9-11ed-bfe3-dac502259ad0.png

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    29697

    瀏覽量

    212594
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4899

    瀏覽量

    70594
  • ChatGPT
    +關(guān)注

    關(guān)注

    29

    文章

    1589

    瀏覽量

    9033

原文標(biāo)題:如果讓ChatGPT來(lái)寫(xiě)代碼他會(huì)怎么寫(xiě)?

文章出處:【微信號(hào):嵌入式悅翔園,微信公眾號(hào):嵌入式悅翔園】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ChatGPT寫(xiě)一個(gè)內(nèi)核模塊

    筆者最近看到這樣一篇文章 ,原作者 ChatGPT 寫(xiě)一個(gè)內(nèi)核模塊,要求實(shí)現(xiàn)的功能是:每 5 秒向控制臺(tái)打印一句 "Hello world",并且把編譯需要的 Makefile 也一起寫(xiě)出來(lái)。
    發(fā)表于 08-17 09:30 ?625次閱讀

    在IC設(shè)計(jì)/驗(yàn)證中怎么應(yīng)用ChatGPT呢?

    好用,那么對(duì)于工程師群體應(yīng)該幫助很大!按照官網(wǎng)的介紹,工程師們完全可以把所要實(shí)現(xiàn)的邏輯步驟用自然語(yǔ)言描述清楚,然后ChatGPT會(huì)翻譯出滿足相應(yīng)要求的代碼進(jìn)行實(shí)現(xiàn)。話不多說(shuō),如圖2直接上干貨進(jìn)行測(cè)試!圖
    發(fā)表于 02-21 15:16

    如果AI是你的完美戀人,你會(huì)愛(ài)上

    但是,如果生活中突然出現(xiàn)了這樣一個(gè)人。 學(xué)習(xí)了全世界的情話只為講給你一個(gè)人聽(tīng);
    發(fā)表于 01-18 10:27 ?800次閱讀

    Python國(guó)產(chǎn)庫(kù)推薦之musicpy:你用代碼來(lái)寫(xiě)音樂(lè)

    你想過(guò)用代碼來(lái)寫(xiě)音樂(lè)嗎?這里給大家介紹一個(gè)國(guó)人寫(xiě)的庫(kù) musicpy,你用簡(jiǎn)潔的語(yǔ)法通過(guò)樂(lè)理邏輯寫(xiě)出優(yōu)美的音樂(lè)。 這個(gè)庫(kù)可以你用非常簡(jiǎn)潔
    的頭像 發(fā)表于 12-16 11:26 ?1897次閱讀

    如何用AI來(lái)寫(xiě)Verilog代碼?

    可能現(xiàn)在它的功能還并不是很完善,但作為工程師,看到這么強(qiáng)大的功能,不禁有些感慨,我們的核心競(jìng)爭(zhēng)力是什么?如果真的有一天,AI可以幫我們寫(xiě)代碼了,我們?cè)撊プ鍪裁矗?/div>
    的頭像 發(fā)表于 12-09 09:45 ?2607次閱讀

    如何利用ChatGPT幫你寫(xiě)代碼?

    最近爆火的ChatGpt相信大家都不陌生,聽(tīng)說(shuō)它還能寫(xiě)代碼,而且能力不凡。作為合格的嵌入式軟件工程師,必須得充分利用起來(lái)!
    的頭像 發(fā)表于 12-13 09:55 ?5.9w次閱讀

    ChatGPT會(huì)搶誰(shuí)的飯碗?

    幫助你實(shí)現(xiàn)機(jī)器人對(duì)話,解答我們提出的問(wèn)題,同時(shí)支持文字、語(yǔ)音和圖片輸入,還可以寫(xiě)詩(shī)歌,寫(xiě)代碼,畫(huà)畫(huà)。還可以有邏輯的寫(xiě)出一個(gè)故事,一篇作文。甚至有外媒報(bào)道說(shuō)89%美國(guó)大學(xué)生竟用ChatGPT寫(xiě)作業(yè),這是不是意味著很多老師都會(huì)被失業(yè)
    的頭像 發(fā)表于 02-08 19:09 ?2780次閱讀

    體驗(yàn)一下ChatGPT帶我們寫(xiě)代碼快感

    OpenAI的ChatGPT是一種自然語(yǔ)言處理技術(shù),它可以幫助開(kāi)發(fā)者快速地完成代碼的編寫(xiě)。通過(guò)將ChatGPT與Python相結(jié)合,開(kāi)發(fā)人員可以利用其先進(jìn)的自然語(yǔ)言處理功能快速而輕松地開(kāi)發(fā)高質(zhì)量的
    的頭像 發(fā)表于 02-14 09:31 ?2257次閱讀

    使用ChatGPT來(lái)寫(xiě)python代碼

    ChatGPT是時(shí)下火熱的AI自然語(yǔ)言引擎,啥都知道啥都會(huì),今天咱們就使用ChatGPT來(lái) 寫(xiě)一段python代碼,模擬一個(gè)溫濕度傳感器,持續(xù)的給服務(wù)器發(fā)數(shù)據(jù),并在物聯(lián)網(wǎng)
    發(fā)表于 02-15 09:35 ?0次下載
    使用<b class='flag-5'>ChatGPT</b><b class='flag-5'>來(lái)寫(xiě)</b>python<b class='flag-5'>代碼</b>

    ChatGPT會(huì)取代人類寫(xiě)代碼

    chatgpt終究只是ai人工智能,它即使學(xué)會(huì)編程也無(wú)法掌握所有程序員的技能和知識(shí),硬要說(shuō)的話只是會(huì)影響到一些技術(shù)水平較差的程序員。
    的頭像 發(fā)表于 02-15 16:07 ?4064次閱讀

    如何利用ChatGPT寫(xiě)代碼?

    最近爆火的ChatGpt相信大家都不陌生,聽(tīng)說(shuō)它還能寫(xiě)代碼,而且能力不凡。作為合格的嵌入式軟件工程師,必須得充分利用起來(lái)!
    的頭像 發(fā)表于 02-17 15:59 ?5154次閱讀
    如何利用<b class='flag-5'>ChatGPT</b><b class='flag-5'>寫(xiě)</b><b class='flag-5'>代碼</b>?

    用AI來(lái)寫(xiě)Verilog代碼能行嗎

    最近ChatGPT大火,成功破圈,到底是什么?怎么使用? 簡(jiǎn)單說(shuō),它是一個(gè)模型,一個(gè)語(yǔ)言模型! **它是以對(duì)話方式與人進(jìn)行交互的AI語(yǔ)言模型!** 但它能做的事情太多了,可以用它來(lái)寫(xiě)一封請(qǐng)假郵件:
    的頭像 發(fā)表于 05-05 16:02 ?1025次閱讀
    用AI<b class='flag-5'>來(lái)寫(xiě)</b>Verilog<b class='flag-5'>代碼</b>能行嗎

    ChatGPT是什么?ChatGPT寫(xiě)代碼的原理你知道嗎

    自己的智能水平,提供更加準(zhǔn)確和有用的回答和服務(wù)。 ChatGPT寫(xiě)代碼的原理 ChatGPT是一種基于深度學(xué)習(xí)模型的自然語(yǔ)言處理技術(shù),其主要原理如下:
    的頭像 發(fā)表于 06-04 17:01 ?3666次閱讀

    chatGPT寫(xiě)MIG控制器

    之前有人發(fā)表論文說(shuō)用chatGPT寫(xiě)了一個(gè)MCU 還流片了,一副很膩害的樣子,在這個(gè)新聞的前幾天我就在朋友圈里說(shuō)了,用chatGPT寫(xiě)verilog代碼還是有一段距離的。今天我就手把手
    發(fā)表于 07-10 09:12 ?489次閱讀
    用<b class='flag-5'>chatGPT</b><b class='flag-5'>寫(xiě)</b>MIG控制器