Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Изучаем STM32 Cortex M3

Непрочитано 23.01.2011, 22:01  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от andries5 Посмотреть сообщение
dosikus, Создаю папку проекта например "Test", в нее копирую
STM32_Init.c
STM32_Init.h
STM32_Reg.h
далее в кейле создаю проект в данной папке. В ней же создаю "main.c"
Забыл про startup .
Выложи целиком проект , плиз...
Реклама:
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 23.01.2011 в 22:11.
dosikus вне форума  
Непрочитано 23.01.2011, 22:03  
zheleznjakov
Прописка
 
Аватар для zheleznjakov
 
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
zheleznjakov на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от gromovi Посмотреть сообщение
НЕ ИНФОРМАТИВНО! куча писанины, нельзя ли как то более человекопонятно сделать? типо
порт на выход(регистр = чему то там)
Глянь у меня макросы, не для кейла, но может будут полезны
http://ziblog.ru/category/mikrokontrolleryi/stm32/
zheleznjakov вне форума  
Эти 2 пользователя(ей) сказали Спасибо zheleznjakov за это сообщение:
gromovi (23.01.2011)
Непрочитано 23.01.2011, 22:25  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от andries5 Посмотреть сообщение
dosikus, Создаю папку проекта например "Test", в нее копирую
STM32_Init.c
STM32_Init.h
STM32_Reg.h
далее в кейле создаю проект в данной папке. В ней же создаю "main.c"

#include "stm32f10x.h"
#include "STM32_Init.h"

#define Led_blue_off GPIOC-›BRR =GPIO_BRR_BR8
#define Led_blue_on GPIOC-›BSRR =GPIO_BSRR_BS8
#define Led_green_off GPIOC-›BRR =GPIO_BRR_BR9
#define Led_green_on GPIOC-›BSRR =GPIO_BSRR_BS9
#define Button_User GPIOA-›IDR & GPIO_IDR_IDR0

int main(void)
{

Led_green_on;
Led_blue_on;

while (1)
{

}
}

в "STM32_Init.c" в строке 5529 меняю имя функции "stm32_Init" на "SystemInit".
Когда открыт "STM32_Init.c" на вкладке его внизу есть "Configuration Wizard".
Нажимаю на ней и в данном мастере удобно настроить порты, частоту, таймеры (правда только четыре), RTC, wdg, USART. Компилирую и радуюсь как дитя. Для симуляции меняю имя процессора на stm32f103RB и тогда в симуляторе в периферии смотрю состояние и частоты и портов и чего угодно.
Но все-же видимо буду ломать голову над "STM32F10x_StdPeriph_Driver". Уже что-то вырисовывается.
Гы... В симуляторе то оно может и будет работать ...
В Discovery валимся а HardFalut .
Выложи проект , может у мну что не так...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 23.01.2011, 22:36  
andries5
Почётный гражданин KAZUS.RUN
 
Регистрация: 19.02.2008
Сообщений: 1,840
Сказал спасибо: 128
Сказали Спасибо 613 раз(а) в 430 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от dosikus Посмотреть сообщение
Забыл про startup
Не забыл. При создании проекта кейл сам добавляет его в зависимости от выбранного МК.
Вложения:
Тип файла: zip Test20.zip (299.7 Кб, 468 просмотров)
andries5 вне форума  
Непрочитано 23.01.2011, 22:39  
andries5
Почётный гражданин KAZUS.RUN
 
Регистрация: 19.02.2008
Сообщений: 1,840
Сказал спасибо: 128
Сказали Спасибо 613 раз(а) в 430 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от andries5 Посмотреть сообщение
симуляторе то оно может и будет работать ...
В Discovery валимся а HardFalut .
Работает и в симуляторе, и при установке stm32f100rb device создает hex файл работающий на Discovery. Проверенно.
При создании проекта указывать device stm32f100rb, как в Discovery.
andries5 вне форума  
Непрочитано 23.01.2011, 22:40  
gromovi
Заблокирован
 
Регистрация: 12.09.2009
Сообщений: 420
Сказал спасибо: 148
Сказали Спасибо 166 раз(а) в 118 сообщении(ях)
gromovi на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

почистил system_stm32f10x.c теперь все более менее проясняется.
Код:
#include "stm32f10x.h"

static void SetSysClockTo24(void); 

void SystemInit (void)
{
  /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
  /* Set HSION bit */
  RCC-›CR |= (uint32_t)0x00000001;
   
  /* Reset HSEON, CSSON and PLLON bits */
  RCC-›CR &= (uint32_t)0xFEF6FFFF;

  /* Reset HSEBYP bit */
  RCC-›CR &= (uint32_t)0xFFFBFFFF;

  /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
  RCC-›CFGR &= (uint32_t)0xFF80FFFF;
 
  /* Disable all interrupts and clear pending bits  */
  RCC-›CIR = 0x009F0000;

  /* Reset CFGR2 register */
  RCC-›CFGR2 = 0x00000000;      

  /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */
  /* Configure the Flash Latency cycles and enable prefetch buffer */
  SetSysClockTo24();
}

static void SetSysClockTo24(void)
{
  __IO uint32_t StartUpCounter = 0, HSEStatus = 0;
  
  /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/    
  /* Enable HSE */    
  RCC-›CR |= ((uint32_t)RCC_CR_HSEON);
 
  /* Wait till HSE is ready and if Time out is reached exit */
  do
  {
    HSEStatus = RCC-›CR & RCC_CR_HSERDY;
    StartUpCounter++;  
  } while((HSEStatus == 0) && (StartUpCounter != HSEStartUp_TimeOut));

  if ((RCC-›CR & RCC_CR_HSERDY) != RESET)
  {
    HSEStatus = (uint32_t)0x01;
  }
  else
  {
    HSEStatus = (uint32_t)0x00;
  }  

  if (HSEStatus == (uint32_t)0x01)
  {
 
    /* HCLK = SYSCLK */
    RCC-›CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
      
    /* PCLK2 = HCLK */
    RCC-›CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
    
    /* PCLK1 = HCLK */
    RCC-›CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1;

    /*  PLL configuration:  = (HSE / 2) * 6 = 24 MHz */
    RCC-›CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
    RCC-›CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1_Div2 | RCC_CFGR_PLLMULL6);

    /* Enable PLL */
    RCC-›CR |= RCC_CR_PLLON;

    /* Wait till PLL is ready */
    while((RCC-›CR & RCC_CR_PLLRDY) == 0)
    {
    }

    /* Select PLL as system clock source */
    RCC-›CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
    RCC-›CFGR |= (uint32_t)RCC_CFGR_SW_PLL;    

    /* Wait till PLL is used as system clock source */
    while ((RCC-›CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)
    {
    }
  }
  else
  { /* If HSE fails to start-up, the application will have wrong clock 
         configuration. User can add here some code to deal with this error */
  } 
}
и всего то надо для старта.

Последний раз редактировалось gromovi; 23.01.2011 в 22:49.
gromovi вне форума  
Непрочитано 23.01.2011, 22:42  
gromovi
Заблокирован
 
Регистрация: 12.09.2009
Сообщений: 420
Сказал спасибо: 148
Сказали Спасибо 166 раз(а) в 118 сообщении(ях)
gromovi на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от zheleznjakov Посмотреть сообщение
Глянь у меня макросы, не для кейла, но может будут полезны
http://ziblog.ru/category/mikrokontrolleryi/stm32/
сам ресурс полезен. с гугла хрен найдешь.
gromovi вне форума  
Непрочитано 23.01.2011, 22:49  
andries5
Почётный гражданин KAZUS.RUN
 
Регистрация: 19.02.2008
Сообщений: 1,840
Сказал спасибо: 128
Сказали Спасибо 613 раз(а) в 430 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

А я больше недели сидел, не мог понять. В документации все из одного файла в другой надо лезть и искать нужное. А кто разобрался раньше, говорят: там не сложно, читайте даташит. Пришлось самому. Сейчас разбираюсь с STD_periph_drivers. Там хотя-бы инициализация периферии в правильном порядке. А уж использование зависит от дальнейшей программы.

Последний раз редактировалось andries5; 23.01.2011 в 23:14.
andries5 вне форума  
Непрочитано 23.01.2011, 23:02  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

andries5, Благодарствую , все заработало.
Но что меня раздражает , то что делал все так же - облом, и в чем причина не понятно...
Сейчас тупо скопировал файлы из твоего проекта - все заработало .
Ну вот и разобрались , эти файлы у меня были с примеров с сайта Keil .
С ними не работает , с твоими все ок . Где брал ?
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 23.01.2011 в 23:09.
dosikus вне форума  
Непрочитано 23.01.2011, 23:13  
andries5
Почётный гражданин KAZUS.RUN
 
Регистрация: 19.02.2008
Сообщений: 1,840
Сказал спасибо: 128
Сказали Спасибо 613 раз(а) в 430 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от dosikus Посмотреть сообщение
Где брал ?
Уже и не помню. Голова крУгом ходила. На Easyelectronics у DiHalt-а, кажется.
andries5 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 04:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.