构建目标 ' demo BuildSet ' "----------构建项目:[ demo - BuildSet ]----------" riscv64-unknown-elf-gcc -c ../Src/main.c -mcpu=e902m -DUSE_ASSERT -O0 -g3 -Wall -ffunction-sections -fdata-sections -pipe -MMD -MP -MTObj/Src_main.o -MFObj/Src_main.d -o Obj/Src_main.o -I../../../../../../Drivers/RV_CORE/Include -I../../../../../../Drivers/RV_CORE/Device/EastSoft/ES32VF2264/Include -I../../../../../../Drivers/ALD/ES32VF2264/Include -I../Inc -I../../../../../../Drivers/RV_CORE/Device/EastSoft/ES32VF2264/Startup ../Src/main.c: 在函数 'normal_convert_complete' 中: ../Src/main.c:40:22: 警告: 格式说明符 '%u' 期望参数类型为 'unsigned int',但参数 2 的类型为 'uint32_t' {aka 'long unsigned int'} [-Wformat=] 40 | printf("ADC Value: %u mV", g_adc_result); // 打印ADC转换结果到串口 | ~^ ~~~~~~~~~~~~ | | | | | uint32_t {aka long unsigned int} | unsigned int | %lu riscv64-unknown-elf-gcc -o Obj/demo.elf @Obj/demo.txt -mcpu=e902m -nostartfiles -Wl,--gc-sections -T".//es32vf2264.ld" -pipe -Wl,--start-group -Wl,--end-group -lm -Wl,-zmax-page-size=1024 -mccrt riscv64-unknown-elf-objcopy -O ihex .//Obj/demo.elf .//Obj/demo.ihex riscv64-unknown-elf-objdump -S .//Obj/demo.elf > .//Lst/demo.asm 目标文件大小: text data bss dec hex filename 71896 2480 2380 76756 12bd4 ./Obj/demo.elf 校验值:0x03B334E2 (481,560) Obj/demo.elf 的修改时间: 2024/12/1 11:14:32 ====0 错误(s), 1 警告(s), 总时间 : 1s199ms====
要解决上述警告,您需要将 `printf` 语句中的格式说明符从 `%u` 改为 `%lu`。这是因为 `g_adc_result` 的类型是 `uint32_t`,而 `%u` 期望的是 `unsigned int` 类型。
修改后的代码如下:
//```c
printf("ADC Value: %lu mV", g_adc_result); // 打印ADC转换结果到串口
//```
这样,格式说明符和参数类型就匹配了,警告信息也会消失。