Перейти к содержанию
    

STM32 – вопросы – проблемы - решения.

Вот именно. Если вы прочитаете описание этой macro system, то поймете, что вам предлагается использовать макросы C-SPY чтобы самому этими макросами описать поведение вашей периферии. И что же вы будете отлаживать - свою программу или свою модель периферии процессора из этих макросов? Это если у вас хватит терпения описать на этих макросах хотя бы один периферийный модуль.

Как раз в отцитированном вами фрагменте.

 

Спасибо!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разбираюсь с прерываниями, хочу сделать прерывание от TIM7

 

Вопрос : почему в документации RM0038 Reference manual в разделе interrupts and events нет ничего про регистры NVIC ?

Там только про регистры EXTI , но ведь это контролер прерываний от портов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разбираюсь с прерываниями, хочу сделать прерывание от TIM7

 

Вопрос : почему в документации RM0038 Reference manual в разделе interrupts and events нет ничего про регистры NVIC ?

Там только про регистры EXTI , но ведь это контролер прерываний от портов.

Надо обратиться к документу PM0056 STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3 programming manual раздел NVIC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо обратиться к документу PM0056 STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3 programming manual раздел NVIC
Ибо NVIC в кортексах разработан ARM как и само ядро, поэтому и дока на них общая.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

Ещё вопрос : почему в файле кейла stm32l1xx.h нет определений регистров NVIC например ISER, ICER и др , хотя определения их битов - есть ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сами регистры — часть NVIC, который, как уже сказали, сделан ARM-ом, а не ST. Региcтры определены в core_cm3.h от ARM, в структуре NVIC_Type. Там же привязка структуры к адресу. stm32l1xx.h должен сам делать #include core_cm3.h

А вот биты — какая периферия приписана к какому входу NVIC — это уже ответственность ST, они у себя и описали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос по потреблению :

 

Почему у STM32L151 при частоте 2МГц и отключенных тактированиях всей периферии потребление 3мА ? Документация обещает 233мкА/МГц , стало быть потребление должно быть 466мкА .

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста, сколько раз можно перепрограммировать flash память?

Например, для Atmel AVR эта цифра указана явно - ~10 000 раз

Для STM32 я такого параметра не встречал

Наверное это также важно и для эмуляции EEPROM на встроенной flash-памяти

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AN2594 Application note

EEPROM emulation in STM32F101xx and STM32F103xx microcontrollers

3.2 Wear leveling: Flash memory endurance improvement

In the STM32F10xxx on-chip Flash memory, each page can be programmed or erased reliably around 10 000 times.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где-то обсуждали, не могу найти.

Можно ли сделать USB connect(резистор 1.5к) без транзисторов тупо выводом контроллера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно ли сделать USB connect(резистор 1.5к) без транзисторов тупо выводом контроллера?

На AT91SAM7 всегда так делал. Не вижу причин по которым это может незаработать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно ли сделать USB connect(резистор 1.5к) без транзисторов тупо выводом контроллера?

Можно вполне. Транзистор (PNP или P-MOS) берут, по моему мнению, по двум причинам:

- в силу традиции включать некий сигнал активно логическим "0" (не все микроконтроллеры переводят свои порты в высокоимпедансное состояние по сбросу, некоторые - в "слабую" "1");

- дабы "изолировать" длиную линию USB от микроконтроллера и исключить повреждение его порта помехами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочу включить в микроконтролере спящий режим, но Keil ругается

 

CPU_hard.c(248): error: #1113: Inline assembler not permitted when generating Thumb code

 

на строку

 

__asm {wfi};

 

От галочки thumb mode в настройках проекта ничего не меняется .

Что сделать, что бы keil не ругался ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#include <stm32f10x_lib.h> // STM32F10x Library Definitions

#include "STM32_Reg.h" // Missing bit definitions

...

PWR->CR |= PWR_Regulator_LowPower; // In the STOP mode in low power mode

__WFE(); // Stop

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#include <stm32f10x_lib.h> // STM32F10x Library Definitions

#include "STM32_Reg.h" // Missing bit definitions

...

PWR->CR |= PWR_Regulator_LowPower; // In the STOP mode in low power mode

__WFE(); // Stop

 

Спасибо, получилось !

В файле core_cmInstr.h написано #define __WFI __wfi

но __wfi вроде бы ни где не определён. Выходит что __wfi - это команда , которую понимает Keil ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...