打印
[技术讨论]

ChatGPT如何写一个驱动液晶屏的代码

[复制链接]
16058|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 kk的回忆 于 2023-2-25 20:20 编辑

#申请原创#

最近ChatGPT挺火的,据说可以按照要求自动写代码。以华芯微特SWM320RET7单片机为MCU,将传感器信息,比如温度,湿度,空气污染指数等信息采集后,显示在4.3寸触摸屏上面。
华芯微特SWM320RET7单片机64Pin的芯片,其中和电源相关的引脚,占了15个,有点多。还有外部晶体和复位引脚。剩余的为用户可用的GPIO,实际可用46个。
按照正常的软件编译过程,是可以参考官方例程,进行代码的修改;
需要修改LCD的分辨率和对应的RGB参数,以及SDRAM的参数等等,这些内容,都是需要根据实现功能的需求一步一步配置。随着代码的调整,是可以实现下图液晶屏显示的内容;
现在按照我给出的浅显的需求,ChatGPT一分钟就给出了软件代码,通过代码内容可以看出,包含传感器的ADC数据采集,然后送到LCD屏幕显示的功能。这些代码实现了ChatGPT描述的所有内容,对应我这样一个基本不会写代码的人,也是可以轻松实现类似跑马灯的功能(软件高手不要鄙视了)。国内的ChatGPT都是删减版本的,给出的回复信息更多的是在internet上面复制的,缺少智能的算法。下面的代码,明显带有copy的痕迹。但是对于大部分初学者,有这种类似例程的代码,也可以加快代码的学习。毕竟只要在copy代码的过程,仔细研究理解了,也是可以增长水平的。ChatGPT给出的代码,就减少了我们在网站寻找例程的过程,对库函数,宏定义这种规范化的编译降低了错误的发生。就像复旦大学张军平教授说,写英文论文,国人比较容易犯的语法错误,写的粗稿交给ChatGPT润色,随后再修改下,文章的质量就能提高。就更符合欧美人的阅读习惯。
再说到下面的代码,由于在和ChatGPT沟通的时候,没有给出具体的GPIO定义,所以对GPIO没有初始化定义,所以这段代码,是无法使用的。但是只要随着和ChatGPT沟通过程的不断深入,将需求更加细化明确,就应该能得到可以烧录使用的。
所以ChatGPT合理的利用,就能是一个不错的工具。
#include <stdio.h> 
#include <stdlib.h>
#include "hw_i2c.h"
#include "hw_adc.h"
#include "hw_gpio.h"
#include "hw_timer.h"
#include "hw_tft.h"

//传感器定义
#define I2C_ADDR_SENSOR   0x01
#define SENSOR_TEMP       0x01
#define SENSOR_HUM        0x02
#define SENSOR_POLLUTION  0x03

//TFT显示屏定义
#define LCD_WIDTH 320
#define LCD_HEIGH 240

//函数声明
void readLDSensorValue(int* temp, int* hum, int* pol);
void drawSensorInformation(int temp, int hum, int pol);

int main()
{
    int temp, hum, pol;

    //设置GPIO
    HW_GPIO_init();
    //读取传感器值
    readLDSensorValue(&temp, &hum, &pol);
    //设置TFT显示屏
    HW_TFT_Init();
    //在TFT上绘制传感器信息
    drawSensorInformation(temp, hum, pol);

    return 0;
}

//读取传感器值
void readLDSensorValue(int* temp, int* hum, int* pol)
{
    unsigned char data[2];

    //读取温度
    hwI2CReadBytes(I2C_ADDR_SENSOR, SENSOR_TEMP, data, 2);
    *temp = (data[0]<<8)|data[1];

    //读取湿度
    hwI2CReadBytes(I2C_ADDR_SENSOR, SENSOR_HUM, data, 2);
    *hum = (data[0]<<8)|data[1];

    //读取环境污染值
    hwI2CReadBytes(I2C_ADDR_SENSOR, SENSOR_POLLUTION, data, 2);
    *pol = (data[0]<<8)|data[1];
}

//绘制传感器信息
void drawTemperatureHumidityPollution(int temp,int hum,int pol)
{
    char buff[20];

    //绘制温度
    sprintf(buff,"Temp.  %dC",temp);
    HW_TFT_UsrTextDraw(0,LCD_HEIGH-3*20, buff ,20 ,White, Black );

    //绘制湿度
    sprintf(buff,"Hum.  %d%%",hum);
    HW_TFT_UsrTextDraw(0,LCD_HEIGH-2*20, buff ,20 ,White, Black );

    //绘制环境污染度
    sprintf(buff,"Polution:  %dmg/m^3",pol);
    HW_TFT_UsrTextDraw(0,LCD_HEIGH-1*20, buff ,20 ,White, Black );     
}


使用特权

评论回复
评论
dirtwillfly 2023-3-13 11:50 回复TA
写代码的门槛越来越低了 

相关帖子

沙发
xyz549040622| | 2023-2-25 21:51 | 只看该作者
万一网络上没有的话,怎么办呢?

使用特权

评论回复
板凳
wjp86| | 2023-2-26 14:42 | 只看该作者
卧槽卧槽,这样就没有技术秘密可言了

使用特权

评论回复
地板
lvyunhua| | 2023-2-26 17:20 | 只看该作者
程序时ChatGPT写的吗,实现了客户的要求吗?

使用特权

评论回复
5
kk的回忆|  楼主 | 2023-2-27 20:25 | 只看该作者
lvyunhua 发表于 2023-2-26 17:20
程序时ChatGPT写的吗,实现了客户的要求吗?

并没有实现功能,只是举个例子,毕竟对于复杂逻辑,还是需要人写的。就是觉得chatgpt有意思,发个贴讨论讨论

使用特权

评论回复
6
qbwww| | 2023-2-28 12:42 | 只看该作者
华芯微特SWM320RET7单片机64Pin的芯片,其中和电源相关的引脚,占了15个,有点多。还有外部晶体和复位引脚。剩余的为用户可用的GPIO,实际可用46个。

使用特权

评论回复
7
起点116| | 2023-2-28 13:02 | 只看该作者
如何使用Gpt有详细教程吗?

使用特权

评论回复
8
gaoyang9992006| | 2023-3-2 11:15 | 只看该作者
xyz549040622 发表于 2023-2-25 21:51
万一网络上没有的话,怎么办呢?

你可以告诉它一些代码,它会理科理解它,然后帮你完善与修改。

使用特权

评论回复
9
gaoyang9992006| | 2023-3-6 08:53 | 只看该作者
我都是写好了一大段代码,发给GPT,让它帮我分析一下,如何可以改进优化

使用特权

评论回复
10
andyxly| | 2023-3-6 14:32 | 只看该作者
楼主或已违法

使用特权

评论回复
11
manbo789| | 2023-3-6 15:51 | 只看该作者

违了哪门子法?

使用特权

评论回复
12
kk的回忆|  楼主 | 2023-3-6 15:53 | 只看该作者

为什么违法?

使用特权

评论回复
13
WayJay1| | 2023-3-31 11:47 | 只看该作者
gaoyang9992006 发表于 2023-3-6 08:53
我都是写好了一大段代码,发给GPT,让它帮我分析一下,如何可以改进优化

一样,哈哈

使用特权

评论回复
14
天意无罪| | 2023-3-31 12:32 | 只看该作者
以后一些低端的功能代码估计都是由机器来干了,人干架构设计和关键模块设计。

使用特权

评论回复
15
小o辣o椒| | 2023-5-10 18:22 | 只看该作者
我很好奇楼主,你成功了,把关键信息喂给AI后,至少点个灯把,有吗?我想康康楼主怎么喂的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

66

主题

561

帖子

6

粉丝