Advertisement
Guest User

diody

a guest
Feb 28th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 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;
  21. volatile unsigned long int j;
  22. //konfiguracja systemu
  23. RCC_Config();
  24. GPIO_Config();
  25.  
  26. /*Tu nalezy umiescic ewentualne dalsze funkcje konfigurujace system*/
  27. 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);
  28.  
  29. while (1) {
  30. /*Tu nalezy umiescic glowny kod programu*/
  31. for(i=0;i<16;i++){
  32. GPIO_Write(GPIOB, (uint16_t) i);
  33. for(j = 0; j < 0x160000ul; j++){}
  34. }
  35. };
  36. return 0;
  37. }
  38.  
  39.  
  40. void RCC_Config(void)
  41. //konfigurowanie sygnalow taktujacych
  42. {
  43.  
  44. ErrorStatus HSEStartUpStatus; //zmienna opisujaca rezultat uruchomienia HSE
  45.  
  46.  
  47. RCC_DeInit(); //Reset ustawien RCC
  48. RCC_HSEConfig(RCC_HSE_ON); //Wlaczenie HSE
  49. HSEStartUpStatus = RCC_WaitForHSEStartUp(); //Odczekaj az HSE bedzie gotowy
  50. if(HSEStartUpStatus == SUCCESS)
  51. {
  52. FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//
  53. FLASH_SetLatency(FLASH_Latency_2); //ustaw zwloke dla pamieci Flash; zaleznie od taktowania rdzenia
  54. //0:<24MHz; 1:24~48MHz; 2:>48MHz
  55. RCC_HCLKConfig(RCC_SYSCLK_Div1); //ustaw HCLK=SYSCLK
  56. RCC_PCLK2Config(RCC_HCLK_Div1); //ustaw PCLK2=HCLK
  57. RCC_PCLK1Config(RCC_HCLK_Div2); //ustaw PCLK1=HCLK/2
  58. RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //ustaw PLLCLK = HSE*9 czyli 8MHz * 9 = 72 MHz
  59. RCC_PLLCmd(ENABLE); //wlacz PLL
  60. while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //odczekaj na poprawne uruchomienie PLL
  61. RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //ustaw PLL jako zrodlo sygnalu zegarowego
  62. while(RCC_GetSYSCLKSource() != 0x08); //odczekaj az PLL bedzie sygnalem zegarowym systemu
  63.  
  64. /*Tu nalezy umiescic kod zwiazany z konfiguracja sygnalow zegarowych potrzebnych w programie peryferiow*/
  65. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//wlacz taktowanie portu GPIO B
  66. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
  67. } else {
  68. }
  69. }
  70.  
  71.  
  72. void GPIO_Config(void)
  73. {
  74. //konfigurowanie portow GPIO
  75. GPIO_InitTypeDef GPIO_InitStructure;
  76. GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
  77. /*Tu nalezy umiescic kod zwiazany z konfiguracja poszczegolnych portow GPIO potrzebnych w programie*/
  78. 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;
  79. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  80. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //wyjscie push-pull
  81. GPIO_Init(GPIOB, &GPIO_InitStructure);
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement