- 主题:最近在用chatgpt给at32写代码
贴个刚实验过的结果。这个是stm8的。
stm8的sdk极其简单,基本上是需要直接操作寄存器的。所以这里我把寄存器定义丢给它,要求它生成一个我想要的反复adc读2个通道的代码。
结果这个代码99.9%正确。
只有几个小问题要改下。一个是uart初始化成9600,但注释写成了115200。另一个是printf这里要修正下,需要include<stdio.h>并且要避让下putchar,或者把putchar的返回类型改正确后直接printf。
这2个问题都是无伤大雅的小改动,但这一堆的寄存器让我看手册我是看的头大,懒得看了让它试试,没想到上机调试一次成功....
当然这个例子可能网上存在一个现成的能work的版本,不过讲真我在chatgpt之前也是google了好几轮了。单通道的有,扫描模式的有,但single模式读2个通道的至少我没看到过。
================================
## You
你知道stm8嘛?我需要用stm8的adc反复读2个通道的数据,你能给我一个最简单的example嘛?
## ChatGPT
抱歉,我不能提供特定的STM8 ADC示例代码,因为STM8的ADC使用方式取决于具体的STM8系列和库,比如STM8S系列、STM8L系列、使用的是SPL库还是其他库。
一般来说,ADC的使用步骤大致如下:
1. 初始化ADC:配置ADC的转换速率、分辨率、数据对齐等属性。
2
## You
具体型号是STM8S003,不使用库直接操作寄存器
## ChatGPT
STM8S003 的 ADC 初始化和通道读取可以通过直接操作寄存器实现。以下是一个简单的例子,此示例反复读取两个通道(如ADC通道 2 和 3)的数据。
注意:这段代码需要您在实际硬件上测试,并根据实际应用环境进行调整。
```c
#include "stm8s.h"
void adc_init(void) {
/* 使能 ADC 时钟 */
CLK->PCKENR2 |= CLK_PCKENR2_ADC;
/* 配置 ADC 的分辨率、数据对齐方式等 */
ADC1->CR1 |= ADC1_CR1_ADON; // Turn on the ADC1
ADC1->CR1 |= ADC1_CR1_CONT; // Set the ADC1 to continuous mode
ADC1->CR2 |= ADC1_CR2_ALIGN; // Right alignment
/* ADC1 prescaler设置 */
ADC1->CR3 |= ADC1_CR3_SMTP1; // fmaster/18
}
uint16_t adc_read(uint8_t channel) {
/* 设置 ADC1 的转换通道 */
ADC1->CSR &= 0x07; // Clear the old channel selection
ADC1->CSR |= channel; // Set the new channel
ADC1->CR1 |= ADC1_CR1_ADON; // Start conversion
while (!(ADC1->CSR & ADC1_CSR_EOC)); // Wait for end of conversion
ADC1->CSR &= ~ADC1_CSR_EOC; // Clear the end of conversion flag
return ADC1->DRH << 2 | ADC1->DRL; // Return the ADC value
}
void main(void) {
adc_init();
uint16_t value_channel2, value_channel3;
while(1) {
value_channel2 = adc_read(2); // read ADC channel 2
value_channel3 = adc_read(3); // read ADC channel 3
// do something with the values
}
}
```
在上述代码中:
- adc_init 函数用于初始化 ADC,包括使能 ADC 时钟,配置 ADC 的分辨率、数据对齐方式等。
- adc_read 函数用于读取指定通道的 ADC 值。
这只是一个非常基础的例子,没有包括错误处理和优化。在实际使用中,你可能需要根据具体的硬件和应用需求进行调整和优化。
## You
这个是stm8的寄存器库,按照这个库写一个用adc读2个通道,然后printf出来不断loop的代码。注意编译环境是sdcc:
/*
* Register definitions for STM8S103 (and STM8S003)
* Still incomplete.
*/
#ifndef _STH8_H
#define _STH8_H
/* Handy macros for GPIO */
#define CONCAT(a, b) a##_##b
#define PORT(a, b) CONCAT(a , b)
#define PIN0 (1 << 0)
#define PIN1 (1 << 1)
#define PIN2 (1 << 2)
#define PIN3 (1 << 3)
#define PIN4 (1 << 4)
#define PIN5 (1 << 5)
#define PIN6 (1 << 6)
#define PIN7 (1 << 7)
/* Register addresses */
/* Clock */
#define CLK_CKDIVR *(volatile unsigned char *)0x50C6
/* GPIO */
#define PA_ODR *(volatile unsigned char *)0x5000
#define PA_IDR *(volatile unsigned char *)0x5001
#define PA_DDR *(volatile unsigned char *)0x5002
#define PA_CR1 *(volatile unsigned char *)0x5003
#define PA_CR2 *(volatile unsigned char *)0x5004
#define PB_ODR *(volatile unsigned char *)0x5005
#define PB_IDR *(volatile unsigned char *)0x5006
#define PB_DDR *(volatile unsigned char *)0x5007
#define PB_CR1 *(volatile unsigned char *)0x5008
#define PB_CR2 *(volatile unsigned char *)0x5009
#define PC_ODR *(volatile unsigned char *)0x500A
#define PC_IDR *(volatile unsigned char *)0x500B
#define PC_DDR *(volatile unsigned char *)0x500C
#define PC_CR1 *(volatile unsigned char *)0x500D
#define PC_CR2 *(volatile unsigned char *)0x500E
#define PD_ODR *(volatile unsigned char *)0x500F
#define PD_IDR *(volatile unsigned char *)0x5010
#define PD_DDR *(volatile unsigned char *)0x5011
#define PD_CR1 *(volatile unsigned char *)0x5012
#define PD_CR2 *(volatile unsigned char *)0x5013
/* UART */
#define UART1_SR *(volatile unsigned char *)0x5230
#define UART1_DR *(volatile unsigned char *)0x5231
#define UART1_BRR1 *(volatile unsigned char *)0x5232
#define UART1_BRR2 *(volatile unsigned char *)0x5233
#define UART1_CR1 *(volatile unsigned char *)0x5234
#define UART1_CR2 *(volatile unsigned char *)0x5235
#define UART1_CR3 *(volatile unsigned char *)0x5236
#define UART1_CR4 *(volatile unsigned char *)0x5237
#define UART1_CR5 *(volatile unsigned char *)0x5238
#define UART1_GTR *(volatile unsigned char *)0x5239
#define UART1_PSCR *(volatile unsigned char *)0x523A
#define UART_SR_TXE (1 << 7)
#define UART_SR_TC (1 << 6)
#define UART_SR_RXNE (1 << 5)
#define UART_SR_IDLE (1 << 4)
#define UART_SR_OR (1 << 3)
#define UART_SR_NF (1 << 2)
#define UART_SR_FE (1 << 1)
#define UART_SR_PE (1 << 0)
#define UART_CR1_R8 (1 << 7)
#define UART_CR1_T8 (1 << 6)
#define UART_CR1_UARTD (1 << 5)
#define UART_CR1_M (1 << 4)
#define UART_CR1_WAKE (1 << 3)
#define UART_CR1_PCEN (1 << 2)
#define UART_CR1_PS (1 << 1)
#define UART_CR1_PIEN (1 << 0)
#define UART_CR2_TIEN (1 << 7)
#define UART_CR2_TCIEN (1 << 6)
#define UART_CR2_RIEN (1 << 5)
#define UART_CR2_ILIEN (1 << 4)
#define UART_CR2_TEN (1 << 3)
#define UART_CR2_REN (1 << 2)
#define UART_CR2_RWU (1 << 1)
#define UART_CR2_SBK (1 << 0)
#define UART_CR3_LINEN (1 << 6)
#define UART_CR3_STOP2 (1 << 5)
#define UART_CR3_STOP1 (1 << 4)
#define UART_CR3_CLKEN (1 << 3)
#define UART_CR3_CPOL (1 << 2)
#define UART_CR3_CPHA (1 << 1)
#define UART_CR3_LBCL (1 << 0)
/* Timers */
#define TIM1_CR1 *(volatile unsigned char *)0x5250
#define TIM1_CR2 *(volatile unsigned char *)0x5251
#define TIM1_SMCR *(volatile unsigned char *)0x5252
#define TIM1_ETR *(volatile unsigned char *)0x5253
#define TIM1_IER *(volatile unsigned char *)0x5254
#define TIM1_SR1 *(volatile unsigned char *)0x5255
#define TIM1_SR2 *(volatile unsigned char *)0x5256
#define TIM1_EGR *(volatile unsigned char *)0x5257
#define TIM1_CCMR1 *(volatile unsigned char *)0x5258
#define TIM1_CCMR2 *(volatile unsigned char *)0x5259
#define TIM1_CCMR3 *(volatile unsigned char *)0x525A
#define TIM1_CCMR4 *(volatile unsigned char *)0x525B
#define TIM1_CCER1 *(volatile unsigned char *)0x525C
#define TIM1_CCER2 *(volatile unsigned char *)0x525D
#define TIM1_CNTRH *(volatile unsigned char *)0x525E
#define TIM1_CNTRL *(volatile unsigned char *)0x525F
#define TIM1_PSCRH *(volatile unsigned char *)0x5260
#define TIM1_PSCRL *(volatile unsigned char *)0x5261
#define TIM1_ARRH *(volatile unsigned char *)0x5262
#define TIM1_ARRL *(volatile unsigned char *)0x5263
#define TIM1_RCR *(volatile unsigned char *)0x5264
#define TIM1_CCR1H *(volatile unsigned char *)0x5265
#define TIM1_CCR1L *(volatile unsigned char *)0x5266
#define TIM1_CCR2H *(volatile unsigned char *)0x5267
#define TIM1_CCR2L *(volatile unsigned char *)0x5268
#define TIM1_CCR3H *(volatile unsigned char *)0x5269
#define TIM1_CCR3L *(volatile unsigned char *)0x526A
#define TIM1_CCR4H *(volatile unsigned char *)0x526B
#define TIM1_CCR4L *(volatile unsigned char *)0x526C
#define TIM1_BKR *(volatile unsigned char *)0x526D
#define TIM1_DTR *(volatile unsigned char *)0x526E
#define TIM1_OISR *(volatile unsigned char *)0x526F
/* Note these are for STM8S103 and STM8S003
STM8S105,104/207/208 are different */
#define TIM2_CR1 *(volatile unsigned char *)0x5300
#define TIM2_CR2 *(volatile unsigned char *)0x5301
#define TIM2_SMCR *(volatile unsigned char *)0x5302
#define TIM2_IER *(volatile unsigned char *)0x5303
#define TIM2_SR1 *(volatile unsigned char *)0x5304
#define TIM2_SR2 *(volatile unsigned char *)0x5305
#define TIM2_EGR *(volatile unsigned char *)0x5306
#define TIM2_CCMR1 *(volatile unsigned char *)0x5307
#define TIM2_CCMR2 *(volatile unsigned char *)0x5308
#define TIM2_CCMR3 *(volatile unsigned char *)0x5309
#define TIM2_CCER1 *(volatile unsigned char *)0x530A
#define TIM2_CCER2 *(volatile unsigned char *)0x530B
#define TIM2_CNTRH *(volatile unsigned char *)0x530C
#define TIM2_CNTRL *(volatile unsigned char *)0x530D
#define TIM2_PSCR *(volatile unsigned char *)0x530E
#define TIM2_ARRH *(volatile unsigned char *)0x530F
#define TIM2_ARRL *(volatile unsigned char *)0x5310
#define TIM2_CCR1H *(volatile unsigned char *)0x5311
#define TIM2_CCR1L *(volatile unsigned char *)0x5312
#define TIM2_CCR2H *(volatile unsigned char *)0x5313
#define TIM2_CCR2L *(volatile unsigned char *)0x5314
#define TIM2_CCR3H *(volatile unsigned char *)0x5315
#define TIM2_CCR3L *(volatile unsigned char *)0x5316
/* Note these are for STM8S103 and STM8S003
STM8S105,104/207/208 are different */
#define TIM4_CR1 *(volatile unsigned char *)0x5340
#define TIM4_CR2 *(volatile unsigned char *)0x5341
#define TIM4_SMCR *(volatile unsigned char *)0x5342
#define TIM4_IER *(volatile unsigned char *)0x5343
#define TIM4_SR *(volatile unsigned char *)0x5344
#define TIM4_EGR *(volatile unsigned char *)0x5345
#define TIM4_CNTR *(volatile unsigned char *)0x5346
#define TIM4_PSCR *(volatile unsigned char *)0x5347
#define TIM4_ARR *(volatile unsigned char *)0x5348
#define TIM_IER_BIE (1 << 7)
#define TIM_IER_TIE (1 << 6)
#define TIM_IER_COMIE (1 << 5)
#define TIM_IER_CC4IE (1 << 4)
#define TIM_IER_CC3IE (1 << 3)
#define TIM_IER_CC2IE (1 << 2)
#define TIM_IER_CC1IE (1 << 1)
#define TIM_IER_UIE (1 << 0)
#define TIM_CR1_APRE (1 << 7)
#define TIM_CR1_CMSH (1 << 6)
#define TIM_CR1_CMSL (1 << 5)
#define TIM_CR1_DIR (1 << 4)
#define TIM_CR1_OPM (1 << 3)
#define TIM_CR1_URS (1 << 2)
#define TIM_CR1_UDIS (1 << 1)
#define TIM_CR1_CEN (1 << 0)
#define TIM_SR1_BIF (1 << 7)
#define TIM_SR1_TIF (1 << 6)
#define TIM_SR1_COMIF (1 << 5)
#define TIM_SR1_CC4IF (1 << 4)
#define TIM_SR1_CC3IF (1 << 3)
#define TIM_SR1_CC2IF (1 << 2)
#define TIM_SR1_CC1IF (1 << 1)
#define TIM_SR1_UIF (1 << 0)
/* SPI */
#define SPI_CR1 *(volatile unsigned char *)0x5200
#define SPI_CR2 *(volatile unsigned char *)0x5201
#define SPI_ICR *(volatile unsigned char *)0x5202
#define SPI_SR *(volatile unsigned char *)0x5203
#define SPI_DR *(volatile unsigned char *)0x5204
#define SPI_CRCPR *(volatile unsigned char *)0x5205
#define SPI_RXCRCR *(volatile unsigned char *)0x5206
#define SPI_TXCRCR *(volatile unsigned char *)0x5207
#define SPI_CR1_LSBFIRST (1 << 7)
#define SPI_CR1_SPE (1 << 6)
#define SPI_CR1_BR(br) ((br) << 3)
#define SPI_CR1_MSTR (1 << 2)
#define SPI_CR1_CPOL (1 << 1)
#define SPI_CR1_CPHA (1 << 0)
#define SPI_CR2_BDM (1 << 7)
#define SPI_CR2_BDOE (1 << 6)
#define SPI_CR2_CRCEN (1 << 5)
#define SPI_CR2_CRCNEXT (1 << 4)
#define SPI_CR2_RXONLY (1 << 2)
#define SPI_CR2_SSM (1 << 1)
#define SPI_CR2_SSI (1 << 0)
#define SPI_ICR_TXIE (1 << 7)
#define SPI_ICR_RXIE (1 << 6)
#define SPI_ICR_ERRIE (1 << 5)
#define SPI_ICR_WKIE (1 << 4)
#define SPI_SR_BSY (1 << 7)
#define SPI_SR_OVR (1 << 6)
#define SPI_SR_MODF (1 << 5)
#define SPI_SR_CRCERR (1 << 4)
#define SPI_SR_WKUP (1 << 3)
#define SPI_SR_TXE (1 << 1)
#define SPI_SR_RxNE (1 << 0)
/* I2C */
#define I2C_CR1 *(volatile unsigned char *)0x5210
#define I2C_CR2 *(volatile unsigned char *)0x5211
#define I2C_FREQR *(volatile unsigned char *)0x5212
#define I2C_OARL *(volatile unsigned char *)0x5213
#define I2C_OARH *(volatile unsigned char *)0x5214
#define I2C_DR *(volatile unsigned char *)0x5216
#define I2C_SR1 *(volatile unsigned char *)0x5217
#define I2C_SR2 *(volatile unsigned char *)0x5218
#define I2C_SR3 *(volatile unsigned char *)0x5219
#define I2C_ITR *(volatile unsigned char *)0x521A
#define I2C_CCRL *(volatile unsigned char *)0x521B
#define I2C_CCRH *(volatile unsigned char *)0x521C
#define I2C_TRISER *(volatile unsigned char *)0x521D
#define I2C_PECR *(volatile unsigned char *)0x521E
/* ADC */
#define ADC_DBxR *(volatile unsigned char *)0x53E0
#define ADC_CSR *(volatile unsigned char *)0x5400
#define ADC_CR1 *(volatile unsigned char *)0x5401
#define ADC_CR2 *(volatile unsigned char *)0x5402
#define ADC_CR3 *(volatile unsigned char *)0x5403
#define ADC_DRH *(volatile unsigned char *)0x5404
#define ADC_DRL *(volatile unsigned char *)0x5405
#define ADC_TDRH *(volatile unsigned char *)0x5406
#define ADC_TDRL *(volatile unsigned char *)0x5407
#define ADC_HTRH *(volatile unsigned char *)0x5408
#define ADC_HTRL *(volatile unsigned char *)0x5409
#define ADC_LTRH *(volatile unsigned char *)0x540A
#define ADC_LTRL *(volatile unsigned char *)0x540B
#define ADC_AWSRH *(volatile unsigned char *)0x540C
#define ADC_AWSRL *(volatile unsigned char *)0x540D
#define ADC_AWCRH *(volatile unsigned char *)0x540E
#define ADC_AWCRL *(volatile unsigned char *)0x540F
#define ADC_CSR_EOC (1 << 7)
#define ADC_CSR_AWD (1 << 6)
#define ADC_CSR_EOCIE (1 << 5)
#define ADC_CSR_AWDIE (1 << 4)
#define ADC_CR1_CONT (1 << 1)
#define ADC_CR1_ADON (1 << 0)
#define ADC_CR2_EXTTRIG (1 << 6)
#define ADC_CR2_EXTSEL (1 << 4)
#define ADC_CR2_ALIGN (1 << 3)
#define ADC_CR2_SCAN (1 << 1)
/* Interrupt commands */
#define enableInterrupts() {__asm__("rim\n");} /* enable interrupts */
#define disableInterrupts() {__asm__("sim\n");} /* disable interrupts */
#define rim() {__asm__("rim\n");} /* enable interrupts */
#define sim() {__asm__("sim\n");} /* disable interrupts */
#define nop() {__asm__("nop\n");} /* No Operation */
#define trap() {__asm__("trap\n");} /* Trap (soft IT) */
#define wfi() {__asm__("wfi\n");} /* Wait For Interrupt */
#define halt() {__asm__("halt\n");} /* Halt */
/* Interrupt numbers */
#define TIM1_OVR_UIF_IRQ 11
#define TIM2_OVR_UIF_IRQ 13
#define TIM3_OVR_UIF_IRQ 15
#define ADC1_EOC_IRQ 22
#define TIM4_OVR_UIF_IRQ 23
/*
Interrupts:
0 TLI
1 AWU Auto Wake up from Halt
2 CLK Clock controller
3 EXTI0 Port A external interrupts
4 EXTI1 Port B external interrupts
5 EXTI2 Port C external interrupts
6 EXTI3 Port D external interrupts
7 EXTI4 Port E external interrupts
8 CAN CAN RX interrupt
9 CAN CAN TX/ER/SC interrupt
10 SPI End of Transfer
11 TIM1 Update /Overflow/Underflow/Trigger/Break
12 TIM1 Capture/Compare
13 TIM2 Update /Overflow
14 TIM2 Capture/Compare
15 TIM3 Update /Overflow
16 TIM3 Capture/Compare
17 UART1 Tx complete
18 UART1 Receive Register DATA FULL
19 I2C I2C interrupt
20 UART2/3 Tx complete
21 UART2/3 Receive Register DATA FULL
22 ADC End of Conversion
23 TIM4 Update/Overflow
24 FLASH EOP/WR_PG_DIS
TLI 0
AWU 1
CLK 2
EXTI_PORTA 3
EXTI_PORTB 4
EXTI_PORTC
EXTI_PORTD
EXTI_PORTE
CAN_RX
CAN_TX
SPI
TIM1_UPD_OVF_TRG_BRK
TIM1_CAP_COM
TIM2_UPD_OVF_BRK
TIM2_CAP_COM
TIM3_UPD_OVF_BRK
TIM3_CAP_COM
UART1_TX
UART1_RX
I2C 19
ADC1 22
TIM4_UPD_OVF 23
EEPROM_EEC 24
*/
#endif
## ChatGPT
根据你提供的库,我为你编写了一个基本的SDCC编译环境的ADC读取和打印的代码。代码将读取ADC通道0和通道1的值,并通过UART1发送到串口。需要注意的是,这是基本版本的代码,可能需要进一步调整以适应你的硬件环境和性能需求。
这是C代码:
```c
#include "stm8.h" // 假定你的库文件名是"stm8.h"
void putchar(char c)
{
while(!(UART1_SR & UART_SR_TXE));
UART1_DR = c;
}
void main()
{
unsigned int adc_val1, adc_val2;
char buffer[6]; // Buffer to hold the ASCII result
// 设置 UART1
CLK_CKDIVR = 0x00; // Set the frequency to 16 MHz
UART1_BRR2 = 0x03; UART1_BRR1 = 0x68; // Set the Baudrate to 115200 (16 MHz / 115200)
UART1_CR2 = UART_CR2_TEN; // Allow TX and RX
// 设置 ADC
ADC_CR1 |= ADC_CR1_ADON; // Turn on ADC (don't forget this one)
ADC_CSR |= 0x01; // Select channel 1
ADC_CR1 |= ADC_CR1_ADON; // Start conversion
while(1)
{
while(!(ADC_CSR & ADC_CSR_EOC)); // Wait for conversion to finish
adc_val1 = ADC_DRL; // Must read LSB first
adc_val1 += ADC_DRH << 8; // Then read MSB
ADC_CSR &= ~ADC_CSR_EOC; // Clear End of conversion flag
ADC_CSR = 0x02; // Switch to channel 2
ADC_CR1 |= ADC_CR1_ADON; // Start conversion on channel 2
while(!(ADC_CSR & ADC_CSR_EOC)); // Wait for conversion to finish
adc_val2 = ADC_DRL; // Must read LSB first
adc_val2 += ADC_DRH << 8; // Then read MSB
// Convert the result to ASCII and send it out over UART1
sprintf(buffer, "%d\r\n", adc_val1);
for(int i = 0; buffer[i]; i++)
{
putchar(buffer[i]);
}
sprintf(buffer, "%d\r\n", adc_val2);
for(int i = 0; buffer[i]; i++)
{
putchar(buffer[i]);
}
ADC_CSR &= ~ADC_CSR_EOC; // Clear End of conversion flag
ADC_CSR = 0x01; // Switch back to channel 1
ADC_CR1 |= ADC_CR1_ADON; // Start conversion on channel 1
}
}
```
代码中,`putchar`函数用于UART1发送字符,main函数中的主循环将不断的读取ADC通道1和2的值,并通过UART1输出这两个通道的读数。注意,对于STM8的ADC来说,我们需要首先读取ADC_DRL (低8位) 然后才是 ADC_DRH (高2位),这样我们才能得到完整的10位ADC读数。
另外,我们在读取完一个通道后,清除
【 在 ztg 的大作中提到: 】
: 写代码估计效果差强人意,毕竟对“智能”要求高。
: 原理图输入和PCB布局拉线要是能ChatGPT辅助的话,我倒觉得更加是人工智能擅长的初级应用。
: 有哪位研究过?可以探讨探讨
--
FROM 180.111.27.*
从楼主的例子看,感觉AI写逻辑比较简单的驱动程序或者测试程序还是可以的。
--
FROM 111.199.191.*
我的感觉是,gpt目前的正确用法,就是把它当个翻译器来用。
不要让它去做开创性的工作,比如不给出指导让它直接去解决一个复杂问题,那结果一定是一塌糊涂的。
要利用它全知的知识背景,以及它的接近人一样的理解能力,给它最直接的相关信息,然后提出一个问题让它能依葫芦画瓢式的解决。这样的结果还是相当不错的。
我这次测试的都是比较小众领域的东西,结果让我相当惊叹。后面我会去测试chatgpt+skidl。skidl是小众中的小众,并且用coding的形式做schematic也一样极其的小众,如果chatgpt在这方面依然能做的很好,那就真的牛逼大发了....
【 在 ztg 的大作中提到: 】
: 从楼主的例子看,感觉AI写逻辑比较简单的驱动程序或者测试程序还是可以的。
--
FROM 180.111.27.*
先让gpt做自己擅长的事,把数据手册、应用手册翻译成中文看看,看看水平怎么样,也可以把外文书外文期刊翻译成中文看看,看看gpt能不能取代翻译。 什么时候出版社完全用gpt翻译出版书,让翻译们下岗。
再让gpt去跟着人学驾驶,看看什么时候能实现自动驾驶。
上面做不到,gpt也就是个玩具。
【 在 lvsoft 的大作中提到: 】
: 之前觉得gpt4也不咋滴,实际上还是我的使用姿势的问题。
: 最近尝试用gpt4写mcu固件,感受很震撼~~
: 下面我给出2个例子。第一个例子是我自己都对at32的库不熟悉,
: ...................
--
FROM 222.129.48.*
翻译?早就是下岗进行时了。
https://www.bilibili.com/video/BV1q24y1L7zP
这个视频本身就是翻译行业的人做的,里面有很多对比例子,自己看吧。
其实我是觉得这个例子更加离谱:
https://www.bilibili.com/video/BV17G4y1j7XX
基本上,这个就是万能翻译机。
【 在 hartcomm 的大作中提到: 】
: 先让gpt做自己擅长的事,把数据手册、应用手册翻译成中文看看,看看水平怎么样,也可以把外文书外文期刊翻译成中文看看,看看gpt能不能取代翻译。 什么时候出版社完全用gpt翻译出版书,让翻译们下岗。
: 再让gpt去跟着人学驾驶,看看什么时候能实现自动驾驶。
: 上面做不到,gpt也就是个玩具。
: ...................
--
修改:lvsoft FROM 180.111.27.*
FROM 180.111.27.*
有出版社 官方机构 大公司不要翻译完全依赖gpt同步发布不同语言版本的么? 如果做不到gpt也是是个高级点的谷歌翻译罢了
按道理gpt的翻译应该完全打败人类
【 在 lvsoft 的大作中提到: 】
: 翻译?早就是下岗进行时了。
:
https://www.bilibili.com/video/BV1q24y1L7zP: 这个视频本身就是翻译行业的人做的,里面有很多对比例子,自己看吧。
: ...................
--
FROM 114.254.9.*
官方机构不可以用chatgpt谢谢
【 在 hartcomm 的大作中提到: 】
: 有出版社 官方机构 大公司不要翻译完全依赖gpt同步发布不同语言版本的么? 如果做不到gpt也是是个高级点的谷歌翻译罢了
: 按道理gpt的翻译应该完全打败人类
:
--
FROM 180.111.27.*
自动驾驶现在还不行,但是各种手机软件的导航功能已经非常好用并且完全普及了。
这里导航软件可以学习道路数据路况数据,给人类用户作为参考,而不是尝试去代替人类开车。我感觉gpt的用法应该参考地图导航软件。
【 在 lvsoft 的大作中提到: 】
:
: 之前觉得gpt4也不咋滴,实际上还是我的使用姿势的问题。
:
: 最近尝试用gpt4写mcu固件,感受很震撼~~
: 下面我给出2个例子。第一个例子是我自己都对at32的库不熟悉,
--
FROM 111.19.97.*
gpt目前是语言模型,简单说就是用概率构建输出,让输出的正确率和类人的感觉提高很多
并且通过概率,让人感觉甚至涌现出了”智能和意识“?
其实他的弱点是逻辑推理。。。目前只是因为语言概率能力的涌现,表现出了一定的逻辑推理能力,但是有人说这个其实是”假象“?
--
FROM 120.245.16.*
这玩意至少写文字类的是个神器。用好的关键在于正确的描述问题,tao都用它解决数学问题了。前途不可限量
【 在 lvsoft 的大作中提到: 】
: 之前觉得gpt4也不咋滴,实际上还是我的使用姿势的问题。
: 最近尝试用gpt4写mcu固件,感受很震撼~~
: 下面我给出2个例子。第一个例子是我自己都对at32的库不熟悉,
: ...................
--
FROM 171.119.124.*