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

Ai32G12K128仿真问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-01-03 02:01:29

1

主题

17

回帖

93

积分

注册会员

积分
93
发表于 2024-10-14 16:17:47 | 显示全部楼层 |阅读模式
本帖最后由 lqw517 于 2024-10-15 09:46 编辑

我用 Ai32G12K128 制作串口仿真芯片后(后续也制作过USB仿真片),串口仿真用不了,于是就用USB下载变回普通IC,
但是这个时候就出问题了,键值读取有问题。于是我又制作回USB仿真找问题,单步运行是正常的,但是仿真的时候,
全速运行的时候,又不行了。再次下载变回普通片,仍然程序跑的有问题。下载过官方的按键例程,是可以的。但是我的这个程序也没问题呀。
有没有大佬看看怎么回事,以下的代码。
现在跑程序很怪。
#include <STC32G.H>

#define FOSC  30000000UL
#define BRT (65536 - (FOSC / 9600+2) / 4)
unsigned char leddata[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
volatile unsigned char keynum=0;
void delay(unsigned int x)
{
        while(x--);
}
void uart_init()
{
//        CLKSEL = 0x0f;
//        CLKDIV = 0;        //SYSCLK  48M
        
        SCON=0x50;
        AUXR |= 0x05;                                
        T2L = BRT;
        T2H = BRT >> 8;

        S1BRT=1;
        T2R = 1;
//        SBUF=0x57;
}
void main()
{

//                        IRC48MCR |=0x80;
//                        while(!(IRC48MCR&0x01));
        
                        P3M0 = 0x00;
                        P3M1 = 0x00;
            P6M0 = 0x00;
                        P6M1 = 0x00;
                  P4M0 = 0x00;
                        P4M1 = 0x00;
                        P7M0 = 0x00;
                        P7M1 = 0x00;
        
                        P0M0 = 0x00;
                        P0M1 = 0x00;
                        P40=0;
                        P70=0;
        
                        P06 = 1;
            P00 = 0;
                        P6=0xc0;
//                        uart_init();
                while(1)
                {
//                        SBUF = 0x57;
//                        delay(30000);

                        P0 = 0xc0;
                        keynum=(P0^0xc0)&0xc0;
                        P0 = 0x0f;
                        keynum|=(P0^0x0f)&0x0f;
                        
                        switch (keynum&0xcf)
      {
              case 0x41:
                                {
                                        P6=leddata[0];
                                }
                      break;
              case 0x42:
                                {
                                         P6=leddata[1];
                                }
                      break;
                                case 0x44:
                                {
                                        P6=leddata[2];
                                }
                      break;
                                 case 0x48:
                                {
                                        P6=leddata[3];
                                }
                      break;
                                 case 0x81:
                                {
                                        P6=leddata[4];
                                }
                      break;
                    case 0x82:
                                {
                                        P6=leddata[5];
                                }
                      break;
                                case 0x84:
                                {
                                        P6=leddata[6];
                                }
                      break;
                                case 0x88:
                                {
                                        P6=leddata[7];
                                }
                      break;
                                
   //           default:
   //                   break;
      }
                }
}


截图202410141603097040.jpg
无人之岛
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-01-03 02:01:29

1

主题

17

回帖

93

积分

注册会员

积分
93
发表于 2024-10-14 16:21:07 | 显示全部楼层
用的是STC实验箱
无人之岛
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:445
  • 最近打卡:2025-05-02 08:45:16

3

主题

47

回帖

428

积分

中级会员

积分
428
发表于 2024-10-14 16:45:36 | 显示全部楼层
lqw*** 发表于 2024-10-14 16:21
用的是STC实验箱

main函数缺少
WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-01-03 02:01:29

1

主题

17

回帖

93

积分

注册会员

积分
93
发表于 2024-10-14 19:18:47 | 显示全部楼层
wpy62*** 发表于 2024-10-14 16:45
main函数缺少
WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1;  ...

加入了还是一样,而且现在读取不了这个芯片的固件号了
无人之岛
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-10-15 09:10:52 | 显示全部楼层
直接烧录实验箱例程包配套的按键扫描例子到芯片里试试。
另外用USB下载变回普通IC,如果还需要仿真的话得重新制作仿真芯片。
对照论坛导航栏“教学视频”-“仿真演示”里面的32G仿真演示视频步骤,看看是否有哪个步骤没操作好。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-01-03 02:01:29

1

主题

17

回帖

93

积分

注册会员

积分
93
发表于 2024-10-15 09:43:15 | 显示全部楼层
乘风*** 发表于 2024-10-15 09:10
直接烧录实验箱例程包配套的按键扫描例子到芯片里试试。
另外用USB下载变回普通IC,如果还需要仿真的话得重 ...

直接烧录例程包是可以的,我用USB下载变回普通芯片,然后发现运行有问题,我又制作回仿真去跑,然后一步一步跑是正常的,可以读取按键值。但是全速运行又不行了,再次下载回普通片也还是一样
无人之岛
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-10-15 11:41:22 | 显示全部楼层
lqw*** 发表于 2024-10-15 09:43
直接烧录例程包是可以的,我用USB下载变回普通芯片,然后发现运行有问题,我又制作回仿真去跑,然后一步 ...

把你的程序直接烧录到芯片里测试功能会正常吗?
单步执行正常,全速运行不行。“不行”是什么情况?
考虑一下是不是全速运行时速度太快,导致肉眼看不到现象。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-01-03 02:01:29

1

主题

17

回帖

93

积分

注册会员

积分
93
发表于 2024-10-15 12:20:21 | 显示全部楼层
乘风*** 发表于 2024-10-15 11:41
把你的程序直接烧录到芯片里测试功能会正常吗?
单步执行正常,全速运行不行。“不行”是什么情况?
考虑 ...

1.不正常。
2.不行是指读取不了键值
3.我的一直按着不放开也不会改变数码管显示的键值,所以应该不会是肉眼看不见。
无人之岛
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-10-15 13:43:04 | 显示全部楼层
lqw*** 发表于 2024-10-15 12:20
1.不正常。
2.不行是指读取不了键值
3.我的一直按着不放开也不会改变数码管显示的键值,所以应该不会是肉 ...

直接烧录例程包是可以的,那还是你的程序有问题,参考例程包的例子进行修改或者移植吧。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 15:42 , Processed in 0.206060 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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