реклама на сайте
подробности

 
 
> попогите разобраться с тактированием портов в stm32f105/107, ищу примеры
super_puper
сообщение Feb 13 2013, 02:30
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 14-12-12
Из: новосибирск
Пользователь №: 74 845



начал изучать данный контроллер но столкнулся с отсутствием примеров может я плохо ищу.. подскажите плиз..
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
super_puper
сообщение Feb 19 2013, 04:12
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 222
Регистрация: 14-12-12
Из: новосибирск
Пользователь №: 74 845



мне немного не понятна связь между системной частотой(вывел на мсо) и частотой дрыганья ноги.. (так много 20?? тактов требуется на то чтоб порт пееключить?) и почему stm32f107(макс f=72) работает на 142 мгц???)

системная мгц: 40 72 142
нога мгц: 1 2 3.4

CODE
#include "stm32f10x.h"
#include "bits.h"
#include "pet.h"
#include "stm32f10x.h"
#include "stm32f10x_conf.h"
#include "stdlib.h"



unsigned long d, e;
GPIO_InitTypeDef GPIO_InitStructure;// позволяет в дальнейшем в программе пользоваться настройкой портов через структуры
//uchar HSEStartUpStatus;


//VVVVVVVVVVVVVVVVVVVVV main() VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
void main()
{
//SystemInit();//библиотечная функция

sys_clock();
portA8_as_MCO;// установим порт А8 как МСО=sysclock
port_init(D,7,50,Out,PP); // настроить порт D.7 на выход 50 мегагерц, PushPull

//VVVVVVVVVVVVVVVVVVVVV Основной цикл VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
while (1)
{
pin_off(D,7);
//for (d=0; d<10; ++d){e ++;};
pin_on(D,7);
//for (d=0; d<10; ++d){e ++;};

}//^^^^^^^^^^^^^^^^^^^^^^^ Основной цикл ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}//^^^^^^^^^^^^^^^^^^^^^^^^ main() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

CODE
//defines for STM32F10x

#define test_bit(domain,reg,bit) domain## -> ##reg## &= ##bit


// функции для работы с железом stm32f10x
// Разработал Свистунов Петр
#define uchar unsigned char

// VVVVVVVVVVVVVVVVVVVVVV пин on/off VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
#define pin_on(port,bit) GPIO##port## -> ODR |= GPIO_ODR_ODR##bit // установить на порте 1
#define pin_off(port,bit) GPIO##port## -> ODR &= ~ GPIO_ODR_ODR##bit // установить на порте 0
#define pin_test(port,bit) GPIO##port## -> ODR &= GPIO_ODR_ODR##bit // возвращает истинное состояние на выводе ножки порта
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^

//vvvvvvvvvvv Конфигурируем порты: направление и максимальная частота работы портов vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
#define port_init(port,pin,speed,AForOUT,pp) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO##port##, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_##pin##;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_##speed##MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_##AForOUT##_##pp##; GPIO_Init(GPIO##port##, &GPIO_InitStructure)
// пример использования
// один раз перед майном пишем: InitTypeDef GPIO_InitStructure;// позволяет в дальнейшем в программе пользоваться настройкой портов через структуры
// далее в программе
// port_init(D,7,50,Out,PP); // настроить порт D.7 на выход 50 мегагерц PushPull
// port_init(A,8,50,AF,PP); // настроить порт D.7 как AlternFunction 50 мегагерц PushPull

#define portA8_as_MCO RCC ->CFGR |= (RCC_CFGR_MCO_2); port_init(A,8,50,AF,PP)

//vvvvvvvvvvvvvvv Частоты тактирования vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
#define HSE_on RCC -> CR |= (RCC_CR_HSEON)// Включает внешний высокоскочастотный кварц(HSE)
#define HSE_sel RCC -> CFGR &= ~(RCC_CFGR_SW_1); RCC -> CFGR |= (RCC_CFGR_SW_0)// выбираем HSE в качастве источника системного клока sysclk


CODE
#include "stm32f10x.h"
#include "bits.h"
//#include "system_stm32f10x.c"
uchar HSEStartUpStatus;

// vvvvvvvvvvvv Конфигурация портов vvvvvvvvvvvvvvvvvvvvv
void sys_clock()
{
//RCC_ClocksTypeDef RCC_ClockFreq;

/* RCC system reset(for debug purpose) */
RCC_DeInit();

/* Enable HSE */
RCC_HSEConfig(RCC_HSE_ON);

/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp();

if(HSEStartUpStatus != ERROR)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

/****************************************************************/
/* HSE=25MHz, HCLK=72MHz, PCLK2=72MHz, PCLK1=36MHz */
/****************************************************************/
/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2);
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);
/* ADCCLK = PCLK2/4 */
RCC_ADCCLKConfig(RCC_PCLK2_Div6);

/* Configure PLLs *********************************************************/
/* PPL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
RCC_PREDIV2Config(RCC_PREDIV2_Div5);
RCC_PLL2Config(RCC_PLL2Mul_8);

/* Enable PLL2 */
RCC_PLL2Cmd(ENABLE);

/* Wait till PLL2 is ready */
while (RCC_GetFlagStatus(RCC_FLAG_PLL2RDY) == RESET)
{}

/* PPL1 configuration: PLLCLK = (PLL2 / 5) * 9 = 72 MHz */
RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2, RCC_PREDIV1_Div1);
RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_4);

/* Enable PLL */
RCC_PLLCmd(ENABLE);

/* Wait till PLL is ready */
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{}

/* Select PLL as system clock source */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

/* Wait till PLL is used as system clock source */
while (RCC_GetSYSCLKSource() != 0x08)
{}
}



}// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


Сообщение отредактировал super_puper - Feb 19 2013, 05:12
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- super_puper   попогите разобраться с тактированием портов в stm32f105/107   Feb 13 2013, 02:30
- - PoReX   STM32 самые популярные микроконтроллеры на ядре Co...   Feb 13 2013, 05:17
- - super_puper   по моему вопросу опять же ничего не нашел.. если ...   Feb 13 2013, 06:53
|- - Сергей Борщ   QUOTE (super_puper @ Feb 13 2013, 08:53) ...   Feb 13 2013, 07:03
- - super_puper   пример в IARе и чтоб работало я написал по пдфке н...   Feb 13 2013, 07:31
|- - ViKo   Цитата(super_puper @ Feb 13 2013, 10:31) ...   Feb 13 2013, 08:15
- - super_puper   .   Feb 13 2013, 07:31
- - PoReX   Код GPIO_InitTypeDef GPIO_InitStructure; /* GPI...   Feb 13 2013, 08:14
- - super_puper   спасибо за пример на частоте 2мгц пин у меня тоже ...   Feb 13 2013, 09:11
|- - PoReX   Цитата(super_puper @ Feb 13 2013, 13:11) ...   Feb 13 2013, 11:56
- - super_puper   .   Feb 13 2013, 09:14
- - super_puper   понятно что есть дайте пример плиз, это же ветка д...   Feb 14 2013, 02:04
- - bav   неужели в Google не набрать запрос? весь интернет ...   Feb 14 2013, 06:17
- - super_puper   за ссылки спасибо! но все равно кому не жалко ...   Feb 14 2013, 10:14
- - bav   Цитатаза ссылки спасибо! но все равно кому не ...   Feb 14 2013, 11:42
- - MALLOY2   Мне кажится ТС хочет ного-дрыганьем получить 50МГц...   Feb 14 2013, 12:14
- - Flexz   Цитата(MALLOY2 @ Feb 14 2013, 16:14) P.S....   Feb 14 2013, 17:38
|- - ViKo   Цитата(super_puper @ Feb 19 2013, 07:12) ...   Feb 19 2013, 06:06
- - Flexz   Большую часть времени съедает вычитывание команд: ...   Feb 19 2013, 08:31
|- - ViKo   Цитата(Flexz @ Feb 19 2013, 11:31) Большу...   Feb 19 2013, 08:54
|- - PoReX   Цитата(ViKo @ Feb 19 2013, 12:54) Из ОЗУ ...   Feb 19 2013, 09:27
|- - ViKo   Цитата(PoReX @ Feb 19 2013, 12:27) Это ещ...   Feb 19 2013, 09:36
|- - PoReX   Цитата(ViKo @ Feb 19 2013, 13:36) Наверно...   Feb 19 2013, 09:42
|- - ViKo   Цитата(PoReX @ Feb 19 2013, 12:42) Так у ...   Feb 19 2013, 09:44
|- - PoReX   Цитата(ViKo @ Feb 19 2013, 13:44) Сколько...   Feb 19 2013, 09:47
|- - ViKo   Цитата(PoReX @ Feb 19 2013, 12:47) Такая ...   Feb 19 2013, 10:00
|- - PoReX   Цитата(ViKo @ Feb 19 2013, 14:00) Правиль...   Feb 19 2013, 10:35
|- - ViKo   Цитата(PoReX @ Feb 19 2013, 13:35) За оди...   Feb 19 2013, 11:14
|- - PoReX   Цитата(ViKo @ Feb 19 2013, 15:14) Не прав...   Feb 19 2013, 11:41
- - super_puper   в установках компилятора поставил оптимизацию по с...   Feb 20 2013, 02:09
|- - ViKo   Цитата(super_puper @ Feb 20 2013, 05:09) ...   Feb 20 2013, 08:18
|- - ViKo   Цитата(super_puper @ Feb 20 2013, 05:09) ...   Feb 26 2013, 14:14
- - bav   Цитатав установках компилятора поставил оптимизаци...   Feb 20 2013, 06:22
- - Allregia   О скорости ногодрыганья: http://electronix.ru/foru...   Feb 20 2013, 08:15
- - super_puper   спасибо за совет, по позже попробую, не подскажите...   Feb 21 2013, 05:36
- - ViKo   Цитата(super_puper @ Feb 21 2013, 08:36) ...   Feb 21 2013, 06:00


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016