31.07.2012, 23:40
|
|
Частый гость
Регистрация: 31.07.2012
Сообщений: 45
Сказал спасибо: 28
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
stm32f4, asm с чего начать?
Всем привет! Люди добрые подскажите с чего начать?
Раньше программировал pic16 и 18 на asm.Теперь стоит задача изучить arm-кие МК, и вот который день долблюсь, не могу понять, даже, как зажечь светодиод.
Имеется отладочная плата STM32F4DISCOVERY.Для начала, хочу зажечь светодиод хотябы на С. Согласно datasheet stm32f4, первым делом я подключаю библиотеки и включаю тактирование порта, в моем случае GPIOC:
Код:
|
RCC-›AHB1ENR |= RCC_AHB1Periph_GPIOC; |
потом устанавливаю порт на выход:
Код:
|
/* These bits are written by software to configure the I/O direction mode.
00: Input (reset state)
01: General purpose output mode
10: Alternate function mode
11: Analog mode*/
GPIOC-›MODER |=0x55555555; |
далее задаю частоту, к примеру 50MHz :
Код:
|
/* These bits are written by software to configure the I/O output speed.
00: 2 MHz Low speed
01: 25 MHz Medium speed
10: 50 MHz Fast speed
11: 100 MHz High speed on 30 pF (80 MHz Output max speed on 15 pF)*/
GPIOC-›OSPEEDR |=0xFFFF;
GPIOC-›OSPEEDR |=0xFFFF; |
ну и высокий уровень:
GPIOC-›ODR |=0xFFFFFFFF;
не могу понять что я не так делаю???
Посоветуйте какое ПО(бесплатное) выбрать, на данный момент я остановился на CooCox!
Облазил весь нэт, ни одной программы на asm-e под STM ни нашел(( как хоть на нем писать. Может есть у когониб примеры на assemblere? буду очень благодарен)
|
|
|
|
31.07.2012, 23:50
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: stm32f4,asm с чего начать?
Сообщение от sosedi
|
Люди добрые подскажите с чего начать?
|
Накатить рюмашечку за воевавших отцов, забыть асм и начать изучать С.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
31.07.2012, 23:57
|
|
Прописка
Регистрация: 05.03.2010
Сообщений: 144
Сказал спасибо: 47
Сказали Спасибо 195 раз(а) в 19 сообщении(ях)
|
Re: stm32f4,asm с чего начать?
Я тоже считаю, что писать на асме нет никакого смысла. Экономить байты и такты? Так ресурсов валом, бери и пользуйся.
По поводу софта - посмотри на GCC и eclipse. Мне эта связка очень понравилась. Под разные процессоры все делаешь в одной среде.
Последний раз редактировалось 291066; 01.08.2012 в 00:00.
|
|
|
|
01.08.2012, 00:11
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: stm32f4,asm с чего начать?
Если юзаете библиотеки, то на офсайте есть примеры... скачайте и разбирайтесь...
Если CMSIS... то как-то так...
Код:
|
#include "stm32f4xx.h"
#define Led_Orange 13
#define Led_Green 12
#define Led_Red 14
#define Led_Blue 15
#define Led_Orange_On (GPIOD-›BSRRL = GPIO_BSRR_BS_13)
#define Led_Orange_Off (GPIOD-›BSRRH = GPIO_BSRR_BS_13)
#define Led_Green_On (GPIOD-›BSRRL = GPIO_BSRR_BS_12)
#define Led_Green_Off (GPIOD-›BSRRH = GPIO_BSRR_BS_12)
#define Led_Red_On (GPIOD-›BSRRL = GPIO_BSRR_BS_14)
#define Led_Red_Off (GPIOD-›BSRRH = GPIO_BSRR_BS_14)
#define Led_Blue_On (GPIOD-›BSRRL = GPIO_BSRR_BS_15)
#define Led_Blue_Off (GPIOD-›BSRRH = GPIO_BSRR_BS_15)
static __IO uint32_t TimingDelay;
//================================================== ============================
void SysTick_Handler (void)
{
if (TimingDelay)
{
TimingDelay--;
}
}
//================================================== ============================
void Delay_mS(uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay);
}
//================================================== ===========================
void InitAll(void)
{
RCC-›AHB1ENR |= RCC_AHB1ENR_GPIODEN; // Такты на порт
GPIOD-›MODER |= (GPIO_MODER_MODER12_0 | GPIO_MODER_MODER13_0 | GPIO_MODER_MODER14_0 | GPIO_MODER_MODER15_0);
GPIOD-›OSPEEDR |= (GPIO_OSPEEDER_OSPEEDR12 | GPIO_OSPEEDER_OSPEEDR13 | GPIO_OSPEEDER_OSPEEDR14 | GPIO_OSPEEDER_OSPEEDR15); // 100MHz
GPIOD-›PUPDR &=~ (GPIO_PUPDR_PUPDR12 | GPIO_PUPDR_PUPDR13 | GPIO_PUPDR_PUPDR14 | GPIO_PUPDR_PUPDR15); // No pull-up, pull-down
GPIOD-›ODR = 0xFFFF;
SysTick_Config(SystemCoreClock/1000);
}
//================================================== ===========================
//================================================== ===========================
int main(void)
{
InitAll();
Delay_mS(2000); // delay 2000ms
GPIOD-›ODR ^= ((1U ‹‹ Led_Green) | (1U ‹‹ Led_Blue) | (1U ‹‹ Led_Orange) | (1U ‹‹ Led_Red));
Delay_mS(1000); // delay 1000ms
while(1)
{
Led_Orange_On;
Delay_mS(200);
Led_Orange_Off;
Led_Red_On;
Delay_mS(200);
Led_Red_Off;
Led_Blue_On;
Delay_mS(200);
Led_Blue_Off;
Led_Green_On;
Delay_mS(200);
Led_Green_Off;
}
} |
|
|
|
Эти 2 пользователя(ей) сказали Спасибо st__1 за это сообщение:
|
|
|
01.08.2012, 00:50
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: stm32f4,asm с чего начать?
Сообщение от 291066
|
По поводу софта - посмотри на GCC и eclipse. Мне эта связка очень понравилась. Под разные процессоры все делаешь в одной среде.
|
Вопрос несколько шире - нужно ещё отлаживать программы.
Что использовать как gdb?
И GCC есть разные: кому-то может понадобится поддержка HW FPU, например, что лучше?
|
|
|
Сказали "Спасибо" _Артём_
|
|
|
01.08.2012, 09:36
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: stm32f4,asm с чего начать?
Сообщение от st__1
|
Я не даю готовых решений, я заставляю думать.
|
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
01.08.2012, 10:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: stm32f4,asm с чего начать?
|
|
|
Сказали "Спасибо" omercury
|
|
|
01.08.2012, 11:45
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: stm32f4, asm с чего начать?
|
|
|
|
01.08.2012, 12:15
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: stm32f4, asm с чего начать?
Лоханулся, бывает. Но мы не забудем.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
01.08.2012, 12:27
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: stm32f4, asm с чего начать?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
С чего начать?
|
ourlive |
Электроника - это просто |
179 |
17.04.2012 23:02 |
С чего начать?
|
nickdkn |
Электроника - это просто |
9 |
12.07.2011 20:13 |
С чего начать?
|
Митрофаныч |
Микроконтроллеры, АЦП, память и т.д |
17 |
03.10.2010 21:18 |
PICи - с чего начать?
|
Alexxx2005 |
Микроконтроллеры, АЦП, память и т.д |
11 |
27.05.2007 01:37 |
C чего начать?
|
melkij |
Микроконтроллеры, АЦП, память и т.д |
11 |
21.08.2006 13:39 |
Часовой пояс GMT +4, время: 07:23.
|
|