Не особо понял почему так отобразилось при этом еще часть символов "*" потерялось, но теперь вроде бы всё на месте. Хотя с гитхаба, конечно, копировать/скачивать надежнее)
"Это код из вашей статьи, стоит всё же его поправить."
Попробовал копировать в разные редакторы текста, с кодироками/символами всё в порядке. Судя по всему у других интересующихся тоже всё хорошо отображается. С гитхаба также копируется некорректно?
У вас символы преобразуются некорректно. 32bit_me все верно написал.
А CMSIS на мой взгляд полезен для понимания функционала переферии. Я не призываю везде его использовать, часто это не оптимальное решение. Но опыт работы с регистрами необходим если работаете с HAL, и замечу, что при работе с HAL можно работать и с CMSIS, часть HALа на нём базируется.
Это условие сделано на случай если что-то в инициализации RCC пойдет не так. Другой вопрос, что в основном теле программы не предусмотрены действия в случае возникновения ошибок. Но я для этого и сделал дополнение: "она не идеальна, но на данном этапе с задачей справляется". Если пытаться в одной статье объять всё, то она разбухнет до нечитабельных размеров.
Почему именно 255?
Мы выделили под переменную i 1 байт. 255 – это максимальное значение которое может быть у uint8_t (беззнаковой целочисленной переменной размером 1 байт)
Спасибо! Рад, что было полезно :)
Я поменял место работы, сейчас времени на написание, увы, почти нет :-(
Вот тут я экспериментировал, но руки пока не дошли все аккуратно расписать
https://github.com/MViktorE/ARM_CMSIS_HAL_LIBS/blob/main/can_cmsis_m3_mve_v0.h
https://github.com/MViktorE/ARM_CMSIS_HAL_LIBS/blob/main/can_cmsis_m3_mve_v0.c
Теперь понял, спасибо, поправил)
Не особо понял почему так отобразилось при этом еще часть символов "*" потерялось, но теперь вроде бы всё на месте. Хотя с гитхаба, конечно, копировать/скачивать надежнее)
"Это код из вашей статьи, стоит всё же его поправить."
Попробовал копировать в разные редакторы текста, с кодироками/символами всё в порядке. Судя по всему у других интересующихся тоже всё хорошо отображается. С гитхаба также копируется некорректно?
У вас символы преобразуются некорректно. 32bit_me все верно написал.
А CMSIS на мой взгляд полезен для понимания функционала переферии. Я не призываю везде его использовать, часто это не оптимальное решение. Но опыт работы с регистрами необходим если работаете с HAL, и замечу, что при работе с HAL можно работать и с CMSIS, часть HALа на нём базируется.
Обработчик ошибок не сделан с целью уменьшить объем кода и не уходить далеко от разбора переферии CAN.
При такой постонавке:
while(RCC->CR & RCC_CR_HSIRDY)
программа наоборот не выйдет из цикла, а может быть даже не успеет туда зайти т.к. HSI не успеет поднять флаг Ready. Я бы переписал вот так:
while(!(RCC->CR & RCC_CR_HSIRDY)) ...
далее счетчик, и условие при котором заканчиваем цикл и выходим с кодом ошибки.
но уверен есть еще более элегантные решения. В данной статье я решил не заострять на этом внимание.
Предыдущие коментарии все верно сказали:
Это условие сделано на случай если что-то в инициализации RCC пойдет не так. Другой вопрос, что в основном теле программы не предусмотрены действия в случае возникновения ошибок. Но я для этого и сделал дополнение: "она не идеальна, но на данном этапе с задачей справляется". Если пытаться в одной статье объять всё, то она разбухнет до нечитабельных размеров.
Почему именно 255?
Мы выделили под переменную i 1 байт. 255 – это максимальное значение которое может быть у uint8_t (беззнаковой целочисленной переменной размером 1 байт)