Если правильно понимаю у Атмелов , ПИКов тактирование всегда включено. Зачем в СТМ32 его нужно включать/выключать?Impartial писал(а):В микроконтроллере есть блок отвечающий за тактирование (RCC) он так и называется в документации.
В этом блоке есть регист (CR - регистр управления). В этом регистре есть бит HSION отвечающий за включение/выключение тактирования от внутреннего RC генератора. Чтобы не лазить каждый раз и не смотреть где этот бит в позиции регистра, берем его по имени, объявленному в "stm32f10x.h".
STM32 Помогите изучить 32-bit Cortex STMicroelectronics
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Impartial эх, если бы меня так в школе учили, был бы вумный
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Незатактированный блок не потребляет электричества.aftaev писал(а):Если правильно понимаю у Атмелов , ПИКов тактирование всегда включено. Зачем в СТМ32 его нужно включать/выключать?
Вот вам моргалка светодиодами и нажималка кнопками, причем с прерываниями и приоритетами.
Написана с использованием библиотек, чтобы не парится с даташитами на конкретный камень и не держать в голове имена и структуры регистров. Соотв. работает на них на всех (Cortex-M) не взирая на различия, нужно только подправить имена вайлов в первых четырёх строчках.
Код: Выделить всё
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_exti.h"
void Delay(uint32_t val) {
for (; val!=0; val--);
}
// Обработчики прерываний
// Сброс флага прерывания специально поставлен в конце, чтобы было лучше видно как работают приоритеты
void EXTI0_IRQHandler(void) {
int i;
for (i=0; i<30; i++) {
GPIOA->ODR ^= GPIO_Pin_2;
Delay(250000);
}
EXTI_ClearFlag(EXTI_Line0);
}
void EXTI1_IRQHandler(void) {
int i;
for (i=0; i<30; i++) {
GPIOA->ODR ^= GPIO_Pin_3;
Delay(250000);
}
EXTI_ClearFlag(EXTI_Line1);
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);
// Настраиваем пины кнопок PA0, PA1
GPIO_DeInit(GPIOA);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// PA0 и PA1 будут использоваться как линии внешнего прерывания 0 и 1 соотв. Это соответствие зашито в архитектуру
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1);
// Настраиваем линии внешнего прерывания на спад (кнопки коротят входы на землю)
EXTI_DeInit();
EXTI_InitStructure.EXTI_Line = EXTI_Line0 | EXTI_Line1;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
// Разрешаем эти прерывания.
NVIC_EnableIRQ(EXTI0_IRQn);
NVIC_EnableIRQ(EXTI1_IRQn);
// Линии 1 понижаем приоритет
NVIC_SetPriority(EXTI1_IRQn, 2);
// Настраиваем пины светодиодов, у меня это PA2, PA3, PD2
GPIO_DeInit(GPIOA);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_DeInit(GPIOD);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
while(1)
{
// Моргаем PD2 всё свободное время
GPIOD->ODR ^= GPIO_Pin_2;
Delay(250000);
}
}
Когда нечего делать моргает PD2.
При нажатии PA0 "нечего делать" прерывается и моргает 30 раз PA2. Если в это время нажать PA1, то PA2 доморгает до 30 и только после этого произойдёт другое прерывание и заморгает PA3.
При нажатии PA1 "нечего делать" прерывается и моргает 30 раз PA3. Если в это время нажать PA0, то PA3 прервется и начнёт моргать PA2, когда отморгает 30 раз PA3 доморгает остаток до 30.
P.S. Impartial хоть и хает библиотеки, но ту-же CMSIS активно юзает...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
UAVpilot, неплохо бы целиком проект для ИАР
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- michael-yurov
- Почётный участник
- Сообщения: 11625
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
UAVpilot, Спасибо, это очень близко к тому, что мне нужно.
Буду ковыряться потихоньку.
Буду ковыряться потихоньку.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
У меня не стоит IAR.
Пусть это будет вам домашним заданием.
P.S. На самом деле это мой первый проект на CooCox. Как это ни странно ни разу даже в хелп не заглянул.
Пусть это будет вам домашним заданием.
P.S. На самом деле это мой первый проект на CooCox. Как это ни странно ни разу даже в хелп не заглянул.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
а что у тебя есть?UAVpilot писал(а):У меня не стоит IAR.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- michael-yurov
- Почётный участник
- Сообщения: 11625
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
aftaev, Попробуй CoCox. Для начала - проще и удобнее других систем.
Не нужно будет искать, и копировать в папку проекта кучи файлов библиотек.
И практически ничего настраивать не нужно для начала работы.
Не нужно будет искать, и копировать в папку проекта кучи файлов библиотек.
И практически ничего настраивать не нужно для начала работы.
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
ткни носом где его скачать?michael-yurov писал(а):aftaev, Попробуй CoCox. Для начала - проще и удобнее других систем.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- ukr-sasha
- Мастер
- Сообщения: 3401
- Зарегистрирован: 21 мар 2011, 07:47
- Репутация: 2180
- Настоящее имя: Украинец Александр Григорьевич
- Откуда: Киев, Украина
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Михаил, эту ссылку видели: http://cxem.net/mc/mc172.php ?
- michael-yurov
- Почётный участник
- Сообщения: 11625
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Сегодня не твой день - сайт не работаетaftaev писал(а):ткни носом где его скачать?michael-yurov писал(а):aftaev, Попробуй CoCox. Для начала - проще и удобнее других систем.
- michael-yurov
- Почётный участник
- Сообщения: 11625
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Да, Александр, спасибо (лучше - на "ты").ukr-sasha писал(а):Михаил, эту ссылку видели: http://cxem.net/mc/mc172.php ?
Видел, прочитал, понравилось, с картинками но мало...
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Видать кокос забыли политьmichael-yurov писал(а):Сегодня не твой день - сайт не работает
ты ссылку кинь
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Усё работает. Это у тебя кусок инета сломался.michael-yurov писал(а):Сегодня не твой день - сайт не работает
Вот тут качай http://www.coocox.org/CooCox_CoIDE.htm и GCC Toolchain.
Удобно сделано подключение стандартных библиотек, не надо самому копировать файлы или вспоминать где они лежат.
Но отладчик огорчил. Но для небольших проектов сгодится.
У меня как-то исторически только Keil остался.aftaev писал(а):а что у тебя есть?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Кеил больше понравился с ним больше возился.UAVpilot писал(а):У меня как-то исторически только Keil остался.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
а что это за дивная микруха с дыркой на DASCOVERY делает
акселерометр какой нибудь Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- michael-yurov
- Почётный участник
- Сообщения: 11625
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Цифровой микрофон.
Нокия с HTC или самсунгом передрались из за такого микрофона
Нокия с HTC или самсунгом передрались из за такого микрофона
- michael-yurov
- Почётный участник
- Сообщения: 11625
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Со скрипом у меня все продвигается.UAVpilot писал(а):Вот вам моргалка светодиодами и нажималка кнопками, причем с прерываниями и приоритетами.
Написана с использованием библиотек, чтобы не парится с даташитами на конкретный камень и не держать в голове имена и структуры регистров. Соотв. работает на них на всех (Cortex-M) не взирая на различия, нужно только подправить имена вайлов в первых четырёх строчках.
Даже можно сказать, что не продвигается.
С библиотеками для STM32F100 этот код компилируется без проблем,
А с F0 и F4 (с такими контроллерами у меня есть тестовые платки) ничего не выходит.
Имена файлов библиотек, я заменил на аналогичные для соответствующей серии (и еще кучу всего, с чем смог разобраться), но все же компилятор спотыкается на строчках:
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1); В итоге, мне все равно нужно будет писать программу под F100, но сейчас под рукой есть только платы под F0 и F4, и хотелось бы попробовать на них.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
F0 нет, а на F4 завтра проверю. Вполне может быть - уж больно сильно отличается он от F1, да и Cortex-M4 он.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- michael-yurov
- Почётный участник
- Сообщения: 11625
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
UAVpilot, еще раз спасибо за большую и полезную помощь.UAVpilot писал(а):F0 нет, а на F4 завтра проверю. Вполне может быть - уж больно сильно отличается он от F1, да и Cortex-M4 он.
Мне все это не срочно. На F4 пойдет, полагаю мне лучше сразу с ней пробовать, т.к. все равно собираюсь именно Cortex-M3 использовать, и проще изучить его работу на М4 (я так понимаю, M4 включает все возможности M3)/
Все равно мне самому нужно ковыряться, пробовать, разбираться. Тут в основном вопрос времени.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: STM32 Помогите изучить 32-bit Cortex STMicroelectronics
Попробуй эти функции заменить на:
Код: Выделить всё
SYSCFG_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
SYSCFG_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1);
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...