Ну вот я и сделал первый шаг к новым вершинам.
Код чисто символический, написан для пробы. Потом всё начну оформлять как положено с раздельными файлами С и хидерами. Пока для эксперимента.
/*******************************************************************************
File: main.c
Info: Generated by Atollic TrueSTUDIO(R) 9.3.0 2019-10-18
********************************************************************************/
/* Подключаемые файлы */
#include "stm32l4xx.h"
/* Функции */
int ClockInit()
{
/* Запускаем генератор HSE */
__IO int Cnt;
int Error;
RCC->CR |= RCC_CR_HSEON_Msk; //Запуск
for(Cnt=0; ; Cnt++) //Ждём сигнал подтверждения
{
if(RCC->CR & (1<<RCC_CR_HSERDY_Pos)) //Всё ОК, сбросим флаг ошибки и выходим
{
Error=0;
break;
}
if(Cnt > 0x1000) //Запуск не получился, установим флаг ошибки и выходим
{
RCC->CR &= ~(1<<RCC_CR_HSEON_Pos);
Error=1;
}
}
return Error;
}
/* Главная */
int main(void)
{
int Er=0, Flag=0;
Er=ClockInit;
if(Er==1)
Flag=1;
}Несколько вопросов знатокам.
1. Atollic подчёркивает красным комментарии на русском. Можно ли это исправить? Не критично, но раздражает.
2. При компиляции ошибок нет, есть два предупреждения. 
Второе вроде понятно. Говорит, что переменная есть, но нигде не используется, а вот первое не очень понятно.
Если не сложно, то объясните пожалуйста.
Всё Разобрался. Надо было так написать: Er=ClockInit(); Забыл скобки поставить.
Отредактировано sva-don (2019-10-18 11:09:31)