STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: STM32 новичку в ARM что к чему

Сообщение SubDia »

Вообще, судя по исходнику system_stm32l1xx.c, у тебя system clock равняется 32 МГц.
Смотри что сделай:
добавь в проект файл из папки проекта: CMSIS\CM3\DeviceSupport\ST\STM32L1xx\Source\Templates\iar\startup_stm32l1xx_md.s
добавь в проект, в папку проекта CMSIS\CM3\DeviceSupport\ST\STM32L1xx\ два файла из библиотеки, которые я прикрепил (исходник и хидер). Добавь в проект исходник (правой кнопкой по названию проекта->Add->Add Files и выбирай файл, потом жми "добавить") И добавь в самом начале исходника хидер "stm32l1xx_rcc.h".
А потом перед основной функцией добавь следующее:

Код: Выделить всё

void Delay_ms(uint32_t ms)
{
        volatile uint32_t nCount;
        RCC_ClocksTypeDef RCC_Clocks;
        RCC_GetClocksFreq (&RCC_Clocks);

        nCount=(RCC_Clocks.HCLK_Frequency/10000)*ms;
        for (; nCount!=0; nCount--);
        return;
}


Вызываешь вместо этих невнятных "for", передаваемый параметр - время задержки в миллисекундах.
Сообщишь, насколько корректны задержки.
Вложения
stm32l1xx_rcc.h
(18.01 КБ) 613 скачиваний
stm32l1xx_rcc.c
(61.03 КБ) 601 скачивание
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Реклама
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: STM32 новичку в ARM что к чему

Сообщение HHIMERA »

ELcat писал(а):Можно ещё такой вопрос? Там в цикле-задержке крутится число всего-то сто тысяч, причём в десятичной. При этом перемигивание происходит с частотой примерно раз в секунду. Это ж какая частота ядра получается? ~400-500кГц что ли?

Ничего удивительного...
ИАР славится своими вывихами и тормознутостью... к тому же на какой частоте всё работает неизвестно...
Последний раз редактировалось HHIMERA Вт окт 09, 2012 00:06:04, всего редактировалось 1 раз.
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: STM32 новичку в ARM что к чему

Сообщение HHIMERA »

SubDia писал(а):Кстати, я пока не соображу, как это отражается на выполнении кода, но у тебя превышен предел i. Unsigned int - это 65535 максимум, а у тебя - imax=100000.

Согласно stdint.h

Код: Выделить всё

    /* exact-width unsigned integer types */
typedef unsigned          char uint8_t;
typedef unsigned short     int uint16_t;
typedef unsigned           int uint32_t;
typedef unsigned       __int64 uint64_t;
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: STM32 новичку в ARM что к чему

Сообщение ELcat »

SubDia писал(а):добавь в проект, в папку проекта CMSIS\CM3\DeviceSupport\ST\STM32L1xx\ два файла из библиотеки, которые я прикрепил (исходник и хидер).
Папка $PROJ_DIR$\CMSIS\CM3\DeviceSupport\ST\STM32L1xx в свойствах препроцессора прописана.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: STM32 новичку в ARM что к чему

Сообщение SubDia »

HHIMERA писал(а):Согласно stdint.h

Код: Выделить всё

    /* exact-width unsigned integer types */
typedef unsigned           int uint32_t;

Да, благодарю, я уже освежил в памяти этот момент.

ELcat писал(а):Папка $PROJ_DIR$\CMSIS\CM3\DeviceSupport\ST\STM32L1xx в свойствах препроцессора прописана.

Я в курсе. Но файлов библиотеки там не наблюдается. Добавить бы, я же не просто так прошу. =)
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Реклама
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: STM32 новичку в ARM что к чему

Сообщение ELcat »

SubDia писал(а):Смотри что сделай:
добавь в проект файл из папки проекта: CMSIS\CM3\DeviceSupport\ST\STM32L1xx\Source\Templates\iar\startup_stm32l1xx_md.s
Правой кнопкой по названию проекта ........ добавлено.
добавь в проект, в папку проекта CMSIS\CM3\DeviceSupport\ST\STM32L1xx\ два файла из библиотеки, которые я прикрепил (исходник и хидер).
Скопированы.
Добавь в проект исходник (правой кнопкой по названию проекта->Add->Add Files и выбирай файл, потом жми "добавить")
Это 1-й пункт или я не понял что добавить?
И добавь в самом начале исходника хидер "stm32l1xx_rcc.h".
А потом перед основной функцией добавь следующее:

Код: Выделить всё

void Delay_ms(uint32_t ms)
{
        volatile uint32_t nCount;
        RCC_ClocksTypeDef RCC_Clocks;
        RCC_GetClocksFreq (&RCC_Clocks);

        nCount=(RCC_Clocks.HCLK_Frequency/10000)*ms;
        for (; nCount!=0; nCount--);
        return;
}

Дописано.
Вызываешь вместо этих невнятных "for", передаваемый параметр - время задержки в миллисекундах.
Вписал строчки Delay_ms(1000);.

Результат:
Err2.png
(146.09 КБ) 414 скачиваний
Реклама
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: STM32 новичку в ARM что к чему

Сообщение SubDia »

Ага. Отлично.
Щелкни правой клавишей по названию проекта (слева, в окне Workspace), выбери в выпавшем окне "Add->Add Files", и добавь в проект исходники system_stm32l1xx.c и stm32l1xx_rcc.c. Только добавляй именно те, что лежат у тебя в папках самого проекта, а не левые со стороны. =)
Они должны будут появиться в окне "Workspace", рядом с прочими исходниками. Точнее, рядом с единственным main.cpp.
Попробуй скомпилировать еще раз.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: STM32 новичку в ARM что к чему

Сообщение Foks »

SubDia, Вы не правы. 16-битный тип - это short int.
А просто int (хоть и unsigned) должен иметь разрядность соотв. разрядности архитектуры, то есть 32 бита. - см. спецификацию Си.

Я тоже ранее на этом попадался.
Giggity giggity goo!
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: STM32 новичку в ARM что к чему

Сообщение SubDia »

Foks, и Вас я благодарю. Я уже освежил в памяти содержимое хидера stdint.h, и товарищ HHIMERA буквально парой постов выше указал мне на эту мою погрешность. :)
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: STM32 новичку в ARM что к чему

Сообщение ELcat »

SubDia писал(а):Ага. Отлично.
Щелкни правой клавишей по названию проекта (слева, в окне Workspace), выбери в выпавшем окне "Add->Add Files", и добавь в проект исходники system_stm32l1xx.c и stm32l1xx_rcc.c. Только добавляй именно те, что лежат у тебя в папках самого проекта, а не левые со стороны. =)
Они должны будут появиться в окне "Workspace", рядом с прочими исходниками. Точнее, рядом с единственным main.cpp.
Попробуй скомпилировать еще раз.

Вот:
Err3.png
(145.42 КБ) 661 скачивание
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: STM32 новичку в ARM что к чему

Сообщение SubDia »

Фу, это криво прописанные пути к хидеру (точнее, полностью прописанные пути без использования настроек проекта).
Я прикрепил исправленный исходник, без этой ерунды.
Замени.
Вложения
stm32l1xx_rcc.c
(60.89 КБ) 597 скачиваний
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: STM32 новичку в ARM что к чему

Сообщение ELcat »

Заменил файлик... Ооой!!!
Вложения
Err4.png
(129.51 КБ) 718 скачиваний
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: STM32 новичку в ARM что к чему

Сообщение SubDia »

Включи в заголовок хидер "stm32l1xx_conf.h" - там объявляется макрос assert_param. Закомментируй все инклюды, за исключением "#include "stm32l1xx_rcc.h".
Кстати, после всего этого ты сможешь спокойно работать со стандартной библиотекой.))
Сам хидер прикрепляю на всякий случай.
Вложения
stm32l1xx_conf.h
(3.12 КБ) 613 скачиваний
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: STM32 новичку в ARM что к чему

Сообщение ELcat »

Код:
Спойлер//#include "stm32l1xx.h"
#include "stm32l1xx_rcc.h"
#include "stm32l1xx_conf.h"
void Delay_ms(uint32_t ms)
{
volatile uint32_t nCount;
RCC_ClocksTypeDef RCC_Clocks;
RCC_GetClocksFreq (&RCC_Clocks);

nCount=(RCC_Clocks.HCLK_Frequency/10000)*ms;
for (; nCount!=0; nCount--);
return;
}

int main()
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;

GPIOB->MODER |= GPIO_MODER_MODER7_0 | GPIO_MODER_MODER6_0; //GP
GPIOB->OTYPER &= ~GPIO_OTYPER_OT_7 & ~GPIO_OTYPER_OT_6; //GP+PP
GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7 | GPIO_OSPEEDER_OSPEEDR6; //max speed (40 MHz (50 MHz if line capacity = 30pF))
while(1)
{
while(GPIOA->IDR & GPIO_IDR_IDR_0)
{ GPIOB->ODR &= ~GPIO_ODR_ODR_7;
GPIOB->ODR &= ~GPIO_ODR_ODR_6;}
GPIOB->ODR |= GPIO_ODR_ODR_7;
GPIOB->ODR &= ~GPIO_ODR_ODR_6;
//for (volatile unsigned int i=0; i<100000; i++) {}
Delay_ms(1000);
GPIOB->ODR &= ~GPIO_ODR_ODR_7;
GPIOB->ODR |= GPIO_ODR_ODR_6;
//for (volatile unsigned int i=0; i<100000; i++) {}
Delay_ms(1000);
}
return 0;
}

Ошибки:
СпойлерBuilding configuration: Hello - Debug
Updating build tree...
main.cpp
Fatal Error[Pe1696]: cannot open source file "stm32l1xx_conf.h" D:\Temp\STM32\main.cpp 3
searched: "D:\Temp\STM32\"
searched: "D:\Temp\STM32\CMSIS\CM3\CoreSupport\"
searched: "D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\"
searched: "C:\IAR Systems\Embedded Workbench 6.4\arm\inc\"
searched: "C:\IAR Systems\Embedded Workbench 6.4\arm\inc\c\"
searched: "C:\IAR Systems\Embedded Workbench 6.4\arm\inc\ecpp\"
Error while running C/C++ Compiler
stm32l1xx_rcc.c
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 244
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 304
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 332
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 368
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 388
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 420
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 445
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 469
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 516
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 537
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 556
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 586
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 695
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 749
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 780
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 811
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 993
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1027
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1043
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1071
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1105
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1148
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1181
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1212
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1252
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1290
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1325
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1369
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1421
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1462
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1521
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1552
Error while running C/C++ Compiler

Total number of errors: 33
Total number of warnings: 0
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: STM32 новичку в ARM что к чему

Сообщение SubDia »

Зачем закомментировал хидер "stm32l1xx.h"?
Все ошибки, которые выдает компилятор - от того, что невозможно найти "stm32l1xx_conf.h". Смотри, куда ты его сунул, и сравни с теми путями, которые выдает IAR в строке ошибок:

Код: Выделить всё

searched: "D:\Temp\STM32\" 
searched: "D:\Temp\STM32\CMSIS\CM3\CoreSupport\"
searched: "D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\"
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: STM32 новичку в ARM что к чему

Сообщение ELcat »

Да я его забыл скопировать.
Скопировал по указанному пити, снял коммент с инклуда:
Спойлер#include "stm32l1xx.h"
#include "stm32l1xx_rcc.h"
#include "stm32l1xx_conf.h"
void Delay_ms(uint32_t ms)
{
volatile uint32_t nCount;
RCC_ClocksTypeDef RCC_Clocks;
RCC_GetClocksFreq (&RCC_Clocks);

nCount=(RCC_Clocks.HCLK_Frequency/10000)*ms;
for (; nCount!=0; nCount--);
return;
}

int main()
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;

GPIOB->MODER |= GPIO_MODER_MODER7_0 | GPIO_MODER_MODER6_0; //GP
GPIOB->OTYPER &= ~GPIO_OTYPER_OT_7 & ~GPIO_OTYPER_OT_6; //GP+PP
GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7 | GPIO_OSPEEDER_OSPEEDR6; //max speed (40 MHz (50 MHz if line capacity = 30pF))
while(1)
{
while(GPIOA->IDR & GPIO_IDR_IDR_0)
{ GPIOB->ODR &= ~GPIO_ODR_ODR_7;
GPIOB->ODR &= ~GPIO_ODR_ODR_6;}
GPIOB->ODR |= GPIO_ODR_ODR_7;
GPIOB->ODR &= ~GPIO_ODR_ODR_6;
//for (volatile unsigned int i=0; i<100000; i++) {}
Delay_ms(1000);
GPIOB->ODR &= ~GPIO_ODR_ODR_7;
GPIOB->ODR |= GPIO_ODR_ODR_6;
//for (volatile unsigned int i=0; i<100000; i++) {}
Delay_ms(1000);
}
return 0;
}

Ошибки:
СпойлерBuilding configuration: Hello - Debug
Updating build tree...
main.cpp
Fatal Error[Pe1696]: cannot open source file "stm32l1xx_adc.h" D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_conf.h 28
searched: "D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\"
searched: "D:\Temp\STM32\"
searched: "D:\Temp\STM32\CMSIS\CM3\CoreSupport\"
searched: "C:\IAR Systems\Embedded Workbench 6.4\arm\inc\"
searched: "C:\IAR Systems\Embedded Workbench 6.4\arm\inc\c\"
searched: "C:\IAR Systems\Embedded Workbench 6.4\arm\inc\ecpp\"
Error while running C/C++ Compiler
stm32l1xx_rcc.c
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 244
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 304
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 332
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 368
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 388
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 420
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 445
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 469
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 516
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 537
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 556
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 586
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 695
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 749
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 780
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 811
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 993
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1027
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1043
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1071
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1105
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1148
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1181
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1212
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1252
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1290
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1325
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1369
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1421
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1462
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1521
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1552
Error while running C/C++ Compiler

Total number of errors: 33
Total number of warnings: 0
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: STM32 новичку в ARM что к чему

Сообщение SubDia »

Я ж говорил: в хидере "stm32l1xx_conf.h" закомментируй все инклюды, кроме строки "#include "stm32l1xx_rcc.h""
А то получается, ты включаешь в проект исходники, которых просто-напросто не существует. Это стандартная библиотека.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: STM32 новичку в ARM что к чему

Сообщение ELcat »

SubDia писал(а):в хидере "stm32l1xx_conf.h" закомментируй все инклюды, кроме строки "#include "stm32l1xx_rcc.h""
Сделал. В ответ:
СпойлерBuilding configuration: Hello - Debug
Updating build tree...
main.cpp
Warning[Pe111]: statement is unreachable D:\Temp\STM32\main.cpp 37
stm32l1xx_rcc.c
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 244
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 304
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 332
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 368
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 388
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 420
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 445
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 469
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 516
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 537
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 556
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 586
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 695
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 749
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 780
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 811
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 993
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1027
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1043
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1071
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1105
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1148
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1181
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1212
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1252
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1290
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1325
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1369
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1421
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1462
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1521
Error[Pe020]: identifier "assert_param" is undefined D:\Temp\STM32\CMSIS\CM3\DeviceSupport\ST\STM32L1xx\stm32l1xx_rcc.c 1552
Error while running C/C++ Compiler

Total number of errors: 32
Total number of warnings: 1
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: STM32 новичку в ARM что к чему

Сообщение SubDia »

Тьфу ты епстудэй
еще в свойствах проекта (Project->options->C/C++ Compiler->Preprocessor) в окне "Defined symbols" впиши "USE_STDPERIPH_DRIVER".
Это делается для того, чтобы в твоем хидере "stm32lxx.h" препроцессор включил хидер "stm32l1xx_conf.h" (см.скрины).
Вложения
stm32l1xx_header.jpg
(94.67 КБ) 691 скачивание
project_opt_prepprocessor.jpg
(41.41 КБ) 755 скачиваний
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: STM32 новичку в ARM что к чему

Сообщение ELcat »

:) Завелось! Перемигивание светиков секунда в секунду.
А от чего он сейчас тактируется? От встроенного калиброванного RC? На какой частоте? На плате место под кварц пустое, кондёры тоже не впаяны. Есть только чёрный пластиковый прямоугольный где-то 2,5Х7мм кварц 32,768 скорее всего кГц и очевидно подключённый к соотв. выводам RTC-таймера.
Ответить

Вернуться в «ARM»