zhw6102 发表于 2024-11-26 16:24:49

soma 发表于 2024-11-26 15:56
iic_sendbyte(Program_Data_IC_1);
这个是 iic_sendbyte(Program_Data_IC_1);吧

软件内是iic_sendbyte(Program_Data_IC_1)

zhw6102 发表于 2024-11-26 16:25:53

DebugLab 发表于 2024-11-26 15:56
应为
iic_sendbyte(Program_Data_IC_1);


void dsp_init(void)
{
        unsigned int i;


      iic_start();
      iic_sendbyte(0x8e);
      iic_SlaveAck();
      iic_sendbyte(PROGRAM_ADDR_IC_1>>8);
        iic_SlaveAck();
      iic_sendbyte(PROGRAM_ADDR_IC_1&0x00ff);
        iic_SlaveAck();
      for(i=0;i<PROGRAM_SIZE_IC_1;i++)
         {
          iic_sendbyte(Program_Data_IC_1);
          iic_SlaveAck();
           }
        iic_stop();           
}

zhw6102 发表于 2024-11-26 16:29:35

DebugLab 发表于 2024-11-26 15:54
1000多行对解决问题无意义的代码(已帮您删除),却没有被调用函数的函数体,I2C是如何实现的没有体现
工 ...

IIC通讯函数是正常的,单字节发送是OK的,其它的使用这路IIC通讯的芯片,板上已工作正常了,就是这个DSP的底层数据需要连续载入底层代码,就出现了现 在的这种问题{:smile:}

社区闲人 发表于 2024-11-26 16:31:44

zhw6102 发表于 2024-11-26 16:23
这个要怎么处理呢,这段函数我是从别的单片机移植过来的,在其它的单片机上是正常的 ...

unsigned int i;加上volatile:
volatile unsigned int i;

zhw6102 发表于 2024-11-26 16:31:54

jwd 发表于 2024-11-26 15:39
猜的,没有等到应答,卡在for那里了?你可以仿真看看

有应答,上面的单字节发送是OK的,就是连续载入数组数据时只发了一个字节,这段程序是我在别的MCU程序移植过来的,在别的MCU上是正常的{:smile:}

zhw6102 发表于 2024-11-26 16:35:18

小坤 发表于 2024-11-26 16:23
iic_sendbyte(Program_Data_IC_1);

变成了指针,指向了这个 Program_Data_IC_1 地址,所以发第一个数据 ...

iic_start();
      iic_sendbyte(DEVICE_ADDR_IC_1);
                                iic_SlaveAck();
      iic_sendbyte(PROGRAM_ADDR_IC_1>>8);
                          iic_SlaveAck();`
      iic_sendbyte(PROGRAM_ADDR_IC_1&0x00ff);
                          iic_SlaveAck();
      for(i=0;i<PROGRAM_SIZE_IC_1;i++)
                                  {
                iic_sendbyte(Program_Data_IC_1);
                                               iic_SlaveAck();
                }
              iic_stop();

zhw6102 发表于 2024-11-26 16:36:45

小坤 发表于 2024-11-26 16:23
iic_sendbyte(Program_Data_IC_1);

变成了指针,指向了这个 Program_Data_IC_1 地址,所以发第一个数据 ...

复制过来怎么不显示数组的呢,实际上是iic_sendbyte(Program_Data_IC_1);

小坤 发表于 2024-11-26 17:06:57

5楼已经给出方法了

Lkck8210 发表于 2024-11-27 10:10:45

本帖最后由 Lkck8210 于 2024-11-27 16:20 编辑

zhw6102 发表于 2024-11-26 16:23
这个要怎么处理呢,这段函数我是从别的单片机移植过来的,在其它的单片机上是正常的 ...
有可能是你复制错了
因为iic_sendbyte(Program_Data_IC_1);
已经不符合代码逻辑了
假设iic_sendbyte定义了传参是指针
那就不需要for循环
用得上for循环就代表iic_sendbyte的传参是数值
所以解决方法如5楼所说
改为
iic_sendbyte(Program_Data_IC_1);

或者你把iic_sendbyte()函数的代码也贴出来看看
页: 1 [2]
查看完整版本: 麻烦帮我看下这个多字节数组的载入问题