前一个帖子,试用EXTI报错。本想按照之前提交的测评计划开始测试汇编代码,但是资料不够,只有一个地址映射表,没有寄存器的地址,而且,在芯片介绍里只是提到了“RISC-V V3A”,没有说用的是哪一种指令模式,所以暂时只能作罢。
继续测试API, 这次想要测试IIC驱动的EEPROM - 24C08N:
,依然出错。之前,我想要熟悉一下沁恒的API,所以每个实例都是把示例代码手输进去,这次为了保险起见,直接拷贝粘贴,但是以然不能通过,这是什么原因?
先看来自这里的代码——https://bbs.21ic.com/forum.php?mod=viewthread&tid=3048142&page=&extra=#pid11638428:、
粘贴就有错:
接下来报错:
出现下述错误:
10:04:18 **** Incremental Build of configuration obj for project CH32V103C8T6 ****
make -j4 all
../User/main.c: In function 'main':
../User/main.c:4:9: error: unknown type name 'u8'
u8 data[SIZE];
^~
../User/main.c:4:17: error: 'SIZE' undeclared (first use in this function)
u8 data[SIZE];
^~~~
../User/main.c:4:17: note: each undeclared identifier is reported only once for each function it appears in
../User/main.c:6:9: warning: implicit declaration of function 'Delay_Init' [-Wimplicit-function-declaration]
Delay_Init();
^~~~~~~~~~
../User/main.c:7:9: warning: implicit declaration of function 'USART_Printf_Init' [-Wimplicit-function-declaration]
USART_Printf_Init(115200);
^~~~~~~~~~~~~~~~~
../User/main.c:8:9: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
printf("SystemClk:%d\r\n",SystemCoreClock);
^~~~~~
../User/main.c:8:9: warning: incompatible implicit declaration of built-in function 'printf'
../User/main.c:8:9: note: include '<stdio.h>' or provide a declaration of 'printf'
../User/main.c:1:1:
+#include <stdio.h>
../User/main.c:8:9:
printf("SystemClk:%d\r\n",SystemCoreClock);
^~~~~~
../User/main.c:8:35: error: 'SystemCoreClock' undeclared (first use in this function)
printf("SystemClk:%d\r\n",SystemCoreClock);
^~~~~~~~~~~~~~~
../User/main.c:10:9: warning: implicit declaration of function 'AT24CXX_Init' [-Wimplicit-function-declaration]
AT24CXX_Init();
^~~~~~~~~~~~
../User/main.c:13:9: warning: implicit declaration of function 'AT24CXX_Write' [-Wimplicit-function-declaration]
AT24CXX_Write(100,(u8*)TEXT_Buffer,SIZE); //写入数�
^~~~~~~~~~~~~
../User/main.c:13:28: error: 'u8' undeclared (first use in this function)
AT24CXX_Write(100,(u8*)TEXT_Buffer,SIZE); //写入数�
^~
../User/main.c:13:31: error: expected expression before ')' token
AT24CXX_Write(100,(u8*)TEXT_Buffer,SIZE); //写入数�
^
../User/main.c:16:9: warning: implicit declaration of function 'Delay_Ms' [-Wimplicit-function-declaration]
Delay_Ms(500);
^~~~~~~~
../User/main.c:19:9: warning: implicit declaration of function 'AT24CXX_Read' [-Wimplicit-function-declaration]
AT24CXX_Read(100,data,SIZE); //读�数�
^~~~~~~~~~~~
../User/main.c:4:12: warning: unused variable 'data' [-Wunused-variable]
u8 data[SIZE];
^~~~
make: *** [User/subdir.mk:24: User/main.o] Error 1
10:04:19 Build Failed. 6 errors, 9 warnings. (took 665ms)
是因为没有把这四行加到文件的开头:
#include "debug.h"
#include "iic.h"
/* Global Variable */
const u8 TEXT_Buffer[]={"CH32V10x I2C TEST"};
/* Global define */
#define SIZE sizeof(TEXT_Buffer)
编译通过:
但是我的串口还是没有显示,可能跟我的串口工具有关,谁有合适的串口调试工具,希望能跟帖推荐。
补充说明,论坛本身的粘贴功能不能用:
再看下载这里的附件打开后的提示:
这个问题尚待解决。
本帖最后由 MianQi 于 2021-2-19 10:20 编辑引用: Jacktang 发表于 2021-3-4 21:37 比较疑惑,把示例代码直接拷贝粘贴,不能通过,这是什么原因?
可能是因为示例代码不是直接从调试通过的项目空间内粘贴过来地,也可能是因为示例资料不是出自一人之手。
引用: MianQi 发表于 2021-3-5 07:49 可能是因为示例代码不是直接从调试通过的项目空间内粘贴过来地,也可能是因为示例资料不是出自一人之手。 ...
官网生态系统需要提升,客户体验感不好
你好,关于CH32V103具体资料,可参考CH32xRM这个手册,里面有对V103及其外设具体介绍,包括寄存器及其地址详细介绍。关于该手册,可在官网搜索CH32V103进行下载。此外,CH32V103支持RV32IMAC指令集组合,支持硬件乘法和除法。关于帖子中提出的移植报错问题,可能是由于开发环境字体及大小配置不同导致的,不影响正常使用。最后,关于编译报错问题,建议检查原程序编译是否报错,移植过程是否存在问题。