OpenAI:ChatGPT 自动写代码功能测试


  • 📌OpenAI地址:https://platform.openai/playground(需要注册才行,如何注册请自行搜索答案)

🌼测试一

  • 提问:基于Keil 8051单片机串口通讯代码
  • 自动生成代码如下:
#include <reg51.h>
#include <intrins.h>

//定义变量
unsigned char tem_H,tem_L; 						//定义温度变量
unsigned char tem_value;							//定义温度变量
unsigned char receive;								//定义接收变量

//定义函数模块
//延时函数
void Delay(unsigned int i)
{
    unsigned char j;
    while(i--)
    {
        for(j=0;j<120;j++);
    }
}

//串口发送函数
void Uart_SendByte(unsigned char dat)
{
    SBUF=dat;
    while(!TI);
    TI=0;
}

//串口接收函数
unsigned char Uart_ReceiveByte()
{
    while(!RI);
    RI=0;
    return SBUF;
}

//主函数
void main()
{
    EA=1;											//开总中断
    ES=1;											//开串口中断
    TMOD=0x20;										//定义工作方式
    PCON=0X00;										//波特率不乘除
    TH1=0XFD;										//定义波特率
    TL1=0XFD;										//定义波特率
    TR1=1;											//启动定时器
    SCON=0X50;										//定义工作方式
    while(1)
    {
        tem_H=0;									//温度初始化
        tem_L=0;									//温度初始化
        P1=0XFF;									//保持模拟量输出
        tem_H=P1;									//将模拟量转换成数字量
        tem_L=P1;									//将模拟量转换成数字量
        tem_value=(tem_H*256+tem_L);				//将温度值转换成16位
        Uart_SendByte(tem_value);					//发送温度值
        receive=Uart_ReceiveByte();					//接收通讯数据
        if(receive==0xAA)							//如果接收到0xAA
        {
            P0=0XFF;								//给P0端口赋值
        }
        else
        {
            P0=0X00;								//给P0端口赋值
        }
        Delay(200);									//延时函数
    }
}

🌻测试二

  • 提问:stm32g072rbt6串口1初始化配置代码

  • 自动生成代码如下:

#include "usart.h"

//串口1初始化
//pclk1:PCLK1时钟频率(Mhz)
//bound:波特率
void usart1_init(u32 pclk1,u32 bound)
{
	float temp;
	u16 mantissa;
	u16 fraction;	   
	temp=(float)(pclk1*1000000)/(bound*16);//得到USARTDIV
	mantissa=temp;				 //得到整数部分
	fraction=(temp-mantissa)*16; //得到小数部分	 
    mantissa<<=4;
	mantissa+=fraction;
	RCC->APB2ENR|=1<<2;    //使能PORTA口时钟  
	RCC->AHB2ENR|=1<<0;    //使能GPIOA口时钟  
	GPIOA->MODER&=0XFFFFF0FF; //PA9,PA10设置
	GPIOA->MODER|=0X00000A00;//PA9,PA10复用功能
	GPIOA->AFR[1]|=0X00001100;//PA9,PA10复用为USART1
	//波特率设置
 	USART1->BRR=mantissa;  // 波特率设置	  
	USART1->CR1|=0X200C;  //1位停止,无校验位.
	USART1->CR1|=1<<3;    //使能接收
	USART1->CR1|=1<<2;    //使能发送
	USART1->CR1|=1<<13;   //使能串口 
}

🌷测试三

  • 提问stm32g072rbt6功能外设

STM32G072RBT6功能外设包括:

1、模拟功能:16位sigma-delta ADC,212位DAC,2个放大器,2个电流计量放大器(IA)3个模拟比较器(AC)4个模拟多路复用器(AMUX)2、数字功能:2个定时器,2个定时器/计数器,2个定时器/频率计数器,2个定时器/脉冲宽度计数器,1个定时器/周期计数器,1个定时器/软件定时器,1个噪音抑制器,2个外部中断,1个电压监测器,2个温度检测器,1个看门狗定时器,1个看门狗复位,2个I2C,2个SPI,1个UART,1个USB;

3、外设:1个系统控制器,1个看门狗控制器,1个CRC控制器,2个RTC,1个安全时钟,1个自动睡眠控制器,4个外部中断控制器,2个DMA控制器,1个GPIO,1个定时器比较器,1个边沿触发器,1个比较器,1个CAN控制器,1个滤波器控制器,1个比较器控制器,1个多路复用器控制器,1个多路复

更多推荐

OpenAI:ChatGPT 自动写代码功能测试