Я работаю над STM32F4 и довольно новичок в этом.Я знаю основы C, но с более чем 1-дневным исследованием я все еще не нашел решения этой проблемы.
Я просто хочу сделать функцию задержки самостоятельно, процессор работает на 168 МГц (HCLK).Итак, моя интуиция говорит, что она производит 168x10 ^ 6 тактов в каждую секунду.Таким образом, метод должен быть примерно таким:
1-Сохранить текущий счетчик часов в переменной
2-Time diff = (значение часов в любое время - сохраненное начальное значение часов) / 168000000
Этот поток должен дать мне разницу во времени в секундах, и тогда я смогу использовать ее для преобразования всего, что захочу.
Но, к сожалению, несмотря на то, что это кажется таким простым, я просто не могу реализовать любые методыв MCU.
Я пробовал time.h, но он не работал должным образом.Например, часы () давали один и тот же результат снова и снова, а время (возвращающее секунды с 1970 года) давало шестнадцатеричный 0xFFFFFFFF (-1, я думаю, означает ошибку).
Спасибо.
Редактировать: во время записи я предполагал, что некоторые функции, такие как clock (), будут возвращать общее количество часов с начала выполнения программы, но теперь я думаю, что через 4Billion / 168Million ss он превысит размер uint32_t.Я действительно смущен.