Advertisement
Guest User

zadanie1

a guest
Feb 28th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.42 KB | None | 0 0
  1. //******************************************************************************
  2. //    THE SOFTWARE INCLUDED IN THIS FILE IS FOR GUIDANCE ONLY.
  3. //    AUTHOR SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT
  4. //    OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  5. //    FROM USE OF THIS SOFTWARE.
  6. //
  7. //    PROGRAM ZAWARTY W TYM PLIKU PRZEZNACZONY JEST WYLACZNIE
  8. //    DO CELOW SZKOLENIOWYCH. AUTOR NIE PONOSI ODPOWIEDZIALNOSCI
  9. //    ZA ZADNE EWENTUALNE, BEZPOSREDNIE I POSREDNIE SZKODY
  10. //    WYNIKLE Z JEGO WYKORZYSTANIA.
  11. //******************************************************************************
  12.  
  13. #include "stm32f10x.h"
  14.  
  15. void GPIO_Config(void);
  16. void RCC_Config(void);
  17.  
  18. int main(void)
  19. {
  20.   volatile unsigned long int i,j;
  21.  
  22.   //konfiguracja systemu
  23.   RCC_Config();  
  24.   GPIO_Config();
  25.   /*Tu nalezy umiescic ewentualne dalsze funkcje konfigurujace system*/
  26.   GPIO_ResetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);      
  27.   while (1) {
  28.         for(i=0;i<16;i++){
  29.             GPIO_Write(GPIOB,(uint16_t)i);
  30.             for(j = 0; j < 0x160000ul; j++);   
  31.         }
  32.    
  33.     }
  34.   return 0;
  35. }
  36.  
  37. void RCC_Config(void)
  38. //konfigurowanie sygnalow taktujacych
  39. {
  40.   ErrorStatus HSEStartUpStatus;                          //zmienna opisujaca rezultat uruchomienia HSE
  41.  
  42.   RCC_DeInit();                                          //Reset ustawien RCC
  43.   RCC_HSEConfig(RCC_HSE_ON);                             //Wlaczenie HSE
  44.   HSEStartUpStatus = RCC_WaitForHSEStartUp();            //Odczekaj az HSE bedzie gotowy
  45.   if(HSEStartUpStatus == SUCCESS)
  46.   {
  47.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//
  48.     FLASH_SetLatency(FLASH_Latency_2);                   //ustaw zwloke dla pamieci Flash; zaleznie od taktowania rdzenia
  49.                                                          //0:<24MHz; 1:24~48MHz; 2:>48MHz
  50.     RCC_HCLKConfig(RCC_SYSCLK_Div1);                     //ustaw HCLK=SYSCLK
  51.     RCC_PCLK2Config(RCC_HCLK_Div1);                      //ustaw PCLK2=HCLK
  52.     RCC_PCLK1Config(RCC_HCLK_Div2);                      //ustaw PCLK1=HCLK/2
  53.     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //ustaw PLLCLK = HSE*9 czyli 8MHz * 9 = 72 MHz
  54.     RCC_PLLCmd(ENABLE);                                  //wlacz PLL
  55.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);  //odczekaj na poprawne uruchomienie PLL
  56.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);           //ustaw PLL jako zrodlo sygnalu zegarowego
  57.     while(RCC_GetSYSCLKSource() != 0x08);                //odczekaj az PLL bedzie sygnalem zegarowym systemu
  58.  
  59.   /*Tu nalezy umiescic kod zwiazany z konfiguracja sygnalow zegarowych potrzebnych w programie peryferiow*/
  60.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//wlacz taktowanie portu GPIO B
  61.    
  62.        
  63.   } else {
  64.   }
  65.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
  66. }
  67.  
  68.  
  69. void GPIO_Config(void)
  70. {
  71.   //konfigurowanie portow GPIO
  72.   GPIO_InitTypeDef  GPIO_InitStructure;
  73.  
  74.     GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
  75.   /*Tu nalezy umiescic kod zwiazany z konfiguracja poszczegolnych portow GPIO potrzebnych w programie*/
  76.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
  77.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  78.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      //wyjscie push-pull
  79.   GPIO_Init(GPIOB, &GPIO_InitStructure);
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement