“驱动库和样例”文件夹里有空历程,使用空历程文件进行编写程序可以省去建立工程、添加固件库等步骤,
在上次使用空历程的过程中,添加完相应的驱动文件后编译是总是出现错误
百度上找了好多方法都没什么效果,有一个方法是更改ProfileImagePath里电脑user的名称,
改完没效果不说,之前使用的用户名也没了,现在创建的新用户感觉跟新电脑一样,浏览器里好多收藏夹也没了,
后来发现空历程里main.c里有一个选择编译器的代码:
/* The ICG area is filled with F by default, HRC = 16MHZ,
Please modify this value as required */
#if defined ( __GNUC__ ) && !defined (__CC_ARM) /* GNU Compiler */
const uint32_t u32ICG[] __attribute__((section(".icg_sec"))) =
#elif defined (__CC_ARM)
const uint32_t u32ICG[] __attribute__((at(0x400))) =
#elif defined (__ICCARM__)
__root const uint32_t u32ICG[] @ 0x400 =
#else
#error "unsupported compiler!!"
#endif
{
/* ICG 0~ 3 */
0xFFFFFFFFUL,
0xFFFFFFFFUL,
0xFFFFFFFFUL,
0xFFFFFFFFUL,
/* ICG 4~ 7 */
0xFFFFFFFFUL,
0xFFFFFFFFUL,
0xFFFFFFFFUL,
0xFFFFFFFFUL,
};
将其注释掉重新编译,终于 0 Error(s), 0 Warning(s).
后面就用空历程来改一个流水灯的功能,这里将LED的功能函数和初始化函数单独放在LED.c文件中,
实现这个功能主要是对GPIO的初始化以及对相应IO的状态取反实现流水灯的功能。
hc32f46x_ddl_help_Rev1.3.0中有一个帮助文件(hc32f46x_ddl)挺好用的,
GPIO历程里面有一个PORT_Toggle(LED0_PORT, LED0_PIN)函数,在帮助文件里查找一下就可以看到相关信息,非常方便
之前写32的代码都是空历程直接拿来用,没想到这次翻车了,还好最后还是用起来了,
之前学32也是感兴趣学学的,学艺不精,有错误的地方望指正,
最后放一张调试效果图,之前浏览器的本地收藏夹都没了,还得想想办法把之前收藏的链接找回来
本帖最后由 1nnocent 于 2021-4-8 15:55 编辑感谢分享!!!