神农鼎
发表于 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