神农鼎 发表于 2025-10-27 15:46:31



AiCube图形化程序自动生成【SPI,SPI-DMA,I2C,I2C-DMA】代码,驱动OLED-12864 - AiCube-ISP , 程序自动生成工具, 支持STC89/15/8H/32/AI8051U 国芯人工智能技术交流网站 - AI32位8051交流社区


用 AiCube 配置硬件 I2C 点亮OLED12864 的过程记录, STC8H8K64U, Ai8051U - AiCube-ISP , 程序自动生成工具, 支持STC89/15/8H/32/AI8051U 国芯人工智能技术交流网站 - AI32位8051交流社区

wuzhengmin 发表于 2025-10-27 16:46:52

遇到无法理解的编译错误提示:

wuzhengmin 发表于 2025-10-27 16:50:13

暂时停一下:

我把源程序打包发上来:


wuzhengmin 发表于 2025-10-27 16:50:45

神农鼎 发表于 2025-10-27 15:46
AiCube图形化程序自动生成【SPI,SPI-DMA,I2C,I2C-DMA】代码,驱动OLED-12864 - AiCube-ISP , 程序自动 ...

谢啦,我慢慢研究一下

wuzhengmin 发表于 2025-10-28 13:52:57

昨天开始到现在


一直在折腾这个AiCube


//<<AICUBE_USER_HEADER_REMARK_BEGIN>>
////////////////////////////////////////
// 在此添加用户文件头说明信息
// 文件名称: main.c
// 文件描述:
// 文件版本: V1.0
// 修改记录:
//   1. (2025-10-28) 创建文件
////////////////////////////////////////
//<<AICUBE_USER_HEADER_REMARK_END>>


#include "config.h"                     //默认已包含stdio.h、intrins.h等头文件


//<<AICUBE_USER_INCLUDE_BEGIN>>
// 在此添加用户头文件包含
//<<AICUBE_USER_INCLUDE_END>>


//<<AICUBE_USER_GLOBAL_DEFINE_BEGIN>>
// 在此添加用户全局变量定义、用户宏定义以及函数声明
               

//<<AICUBE_USER_GLOBAL_DEFINE_END>>



////////////////////////////////////////
// 项目主函数
// 入口参数: 无
// 函数返回: 无
////////////////////////////////////////
void main(void)
{
    //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
    // 在此添加用户主函数初始化代码
                u8 i=1;
                u8tmp;
       
    //<<AICUBE_USER_MAIN_INITIAL_END>>

    SYS_Init();

    //<<AICUBE_USER_MAIN_CODE_BEGIN>>
    // 在此添加主函数中运行一次的用户代码
       
//        if( DeviceState != DEVSTATE_CONFIGURED )         //                        continue;
//       
                P40 = 0;        //三极管引脚输出低电平
                P60 = 0;        //输出低电平   //这2颗灯亮了
                P61 = 0;        //输出低电平   //说明这段程序是执行了
                printf( " A 首先从24C02读取8个数:            \r\n");
                printf( " B 把从24C02读取8个数加1后写入24C02:\r\n");
                printf( " C 把从24C02读取8个数减1后写入24C02:\r\n");
                printf( " D 把24C02地址0x0000的8个数清零:    \r\n");
                IIC_Read_NGByte(0,tmp, 8); //读地址0开始的8个字节
                for( i=0;i<8;i++ )
                {
                printf( "%u\t",tmp );
                }                                                        //为什么串口助手看不到以上打印结果?
                                                                        //可能是USB查询方式,只有在查询的时候才输出?
                                               
                //for(i=0; i<8; i++)LED8 = tmp & 0x0f; //数码管打印8个字节
                delay_ms(2000);
       
    //<<AICUBE_USER_MAIN_CODE_END>>

    while (1)
    {
      //USBLIB_OUT_Done();            //查询方式处理USB接收的数据

      //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
      // 在此添加主函数中用户主循环代码
               
               
                                if( bUsbOutReady )                                                               
                {
                        //USB_SendData(UsbOutBuffer,OutNumber);


                  IIC_Read_NGByte(0,tmp, 8); //读地址0开始的8个字节
                for( i=0;i<8;i++ )
                {
                printf( "%u\t",tmp );
                }               
                       
                       
                               

       
                                usb_OUT_done();
                       
                }
              
                       
               
      //<<AICUBE_USER_MAIN_LOOP_END>>
    }
}




搞不明白为什么

IIC_Read_NGByte(0,tmp, 8); //读地址0开始的8个字节
                for( i=0;i<8;i++ )
                {
                printf( "%u\t",tmp );
                }               

执行后,串口助手么有反应?

wuzhengmin 发表于 2025-10-28 18:05:44

现在的进度是可以从24C02读数据,显示在数码管+串口助手上,


对8个数进行+1,或者-1 操作后可以存储

也可以对8个数进行清零并存储:


wuzhengmin 发表于 2025-10-28 18:24:24

同时是在数码管显示的:


wuzhengmin 发表于 2025-10-28 18:26:07

串口助手:

wuzhengmin 发表于 2025-10-28 18:27:52

再发一次B:

wuzhengmin 发表于 2025-10-28 18:29:32

发C,减小1


页: 1 [2] 3
查看完整版本: 关于AiCube创建IIC项目的疑问?(在荣誉版主erci***耐心指导下已经解决)