uint32_t Time = time(NULL) * 1000;因为有这句代码在编码构建目标的时候报错__use_no_semihosting was requested, but time was referenced怎么修改这条代码
时间: 2023-06-13 09:02:39 浏览: 71
Time编程修改
这个错误是因为使用了没有启用的 semihosting 功能,而 `time()` 函数通常需要 semihosting 支持来获取系统时间。为了解决这个问题,你可以将代码中的 `time(NULL)` 替换为自己编写的获取系统时间的函数,而不使用 `time()` 函数。
下面是一个简单的示例代码,可以获取系统时间并将其转换为毫秒数:
```c
#include <stdint.h>
#include "stm32f4xx.h" // 你的MCU型号头文件
uint32_t millis(void) {
return (uint32_t) (SysTick->VAL * 1000 / SystemCoreClock);
}
```
这个代码假设你的 MCU 已经配置好了 SysTick 定时器,并且 `SystemCoreClock` 变量已经正确设置为系统时钟的频率。如果你的 MCU 没有配置好 SysTick 定时器,你需要根据自己的情况来编写获取时间的函数。
阅读全文