找回密码
 立即注册
查看: 331|回复: 8

通义千问·给出的按键检测程序也有错

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-04-29 09:29:30

31

主题

148

回帖

982

积分

高级会员

积分
982
发表于 2025-1-2 20:38:47 | 显示全部楼层 |阅读模式

按键是接stc89c52的P3.4和P3.5.
下面这个问题是通义千问·给的错误代码,而且告知错误后,还是没解决。自己尝试解决出来的(已解决)。


#include <reg52.h>

#define LED P0
sbit KEY1 = P3^4;
sbit KEY2 = P3^5;

typedef unsigned char uchar;
typedef unsigned int uint;
uint cnt;
bit showModeFlag = 0;

uchar table1[15] = {0x5F, 0xED, 0xDB, 0xE7, 0x00, 0xFF, 0x00, 0xFF, 0xED, 0xDB, 0xE7, 0x00, 0xFF, 0x00, 0xFF};
uchar table2[20] = {0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F, 0xFF, 0x00, 0xFF, 0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xFB, 0xFD, 0xFE, 0x01};

void delay(uint cnt) {
    while(cnt--);
}

void Led_Show1() {
    uint i;
    for (i = 0; i < 15; i++) {
        LED = table1;
        delay(8000); // 增加延时时间
        if (showModeFlag != 1) {
            break;
        }
    }
}

void Led_Show2() {
    uint i;
    for (i = 0; table2 != 0x01; i++) {
        LED = table2;
        delay(8000); // 增加延时时间
        if (showModeFlag != 2) {
            break;
        }
    }
}

// 定义 debounce 函数,参数类型为 sbit
bit debounce(sbit key) {
    static bit lastState = 1; // 静态变量,保存上一次按键状态,默认为未按下(高电平)
    bit currentState = key;   // 获取当前按键状态

    // 检查当前按键是否按下且上次按键状态为未按下
    if (currentState == 0 && lastState == 1) {
        delay(5); // 短暂延时去抖动
        // 再次检查按键状态以确认按键确实按下
        if (key == 0) {
            lastState = 0; // 更新按键状态为已按下
            return 1;      // 返回1表示按键有效按下
        }
    }
    // 如果当前按键状态为释放,则更新lastState为1
    else if (currentState == 1) {
        lastState = 1;
    }

    // 默认情况下返回0,表示按键未有效按下
    return 0;
}

void main() {
    while (1) {
        if (debounce(KEY1)) {
            showModeFlag = 1;
            Led_Show1();
            showModeFlag = 0; // 重置标志位
        }
        if (debounce(KEY2)) {
            showModeFlag = 2;
            Led_Show2();
            showModeFlag = 0; // 重置标志位
        }
    }
}


报错是

Rebuild started: Project: hc_51_key2_led_show
Rebuild target 'Target 1'
compiling main.c...
main.c(42): error C141: syntax error near 'sbit', expected 'bit'
main.c(44): error C202: 'key': undefined identifier
main.c(50): error C202: 'key': undefined identifier
Target not created.
Build Time Elapsed:  00:00:00



怎么也不知道错哪里了。
突然貌似看明白了。
把42行参数定义的sbit key改成bit key。即可。

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3191

回帖

4872

积分

论坛元老

积分
4872
发表于 2025-1-2 22:24:49 | 显示全部楼层
自动生成的代码还需要手动检测。。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-02 07:32:37

21

主题

564

回帖

2678

积分

金牌会员

积分
2678
发表于 2025-1-3 08:09:07 | 显示全部楼层
智障AI了解一下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-04-29 09:29:30

31

主题

148

回帖

982

积分

高级会员

积分
982
发表于 2025-1-3 10:13:59 | 显示全部楼层
don*** 发表于 2025-1-2 22:27
好像是阿里的ai吧?

对头。阿里的通义千问,百度的文心一言。李彦宏这个我还没用过
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-04-29 09:29:30

31

主题

148

回帖

982

积分

高级会员

积分
982
发表于 2025-1-3 12:35:57 | 显示全部楼层
don*** 发表于 2025-1-3 12:33
头一次见ai写代码

老哥,多接触下吧。这个挺管用的。创作还有点差距。但是搞51这些有点年头的传统技术,还是基本没问题。

到了8h,51u这样的就有点不给力了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2025-1-3 14:02:37 | 显示全部楼层

让他生成一些固定的算法类的东西还可以,,涉及一些业务代码就差点儿意思了。。

不过一些类似的但又没法抽象出来的代码,照葫芦画瓢的功能用的还是比较顺心。。

参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-04-29 09:29:30

31

主题

148

回帖

982

积分

高级会员

积分
982
发表于 2025-1-3 14:25:22 | 显示全部楼层
_奶*** 发表于 2025-1-3 14:02
让他生成一些固定的算法类的东西还可以,,涉及一些业务代码就差点儿意思了。。
不过一些类似的但又没法抽 ...

直接出一整套代码貌似做不到,但是可以引导他加以修改
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2025-1-3 15:06:40 | 显示全部楼层
yzhk*** 发表于 2025-1-3 14:25
直接出一整套代码貌似做不到,但是可以引导他加以修改

是的,,不过他们的代码还是偏向纯软件开发的,,,,沾点儿底层的东西就开始瞎写了,,给他说了不能用指针访问寄存器,就非得用,,气笑了,后来就放过它,让它写点儿别的了
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:69
  • 最近打卡:2025-03-12 08:50:27
已绑定手机

5

主题

58

回帖

155

积分

注册会员

积分
155
发表于 2025-1-7 07:53:15 来自手机 | 显示全部楼层
_奶咖君_ 发表于 2025-1-3 15:06
是的,,不过他们的代码还是偏向纯软件开发的,,,,沾点儿底层的东西就开始瞎写了,,给他说了不能用指 ...

用的deepv3试试
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:24 , Processed in 0.124017 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表