Advertisement
Guest User

Untitled

a guest
Jul 8th, 2015
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.27 KB | None | 0 0
  1. #include "stm32f37x.h"
  2. #include "defines.h"
  3. #include "tm_stm32f37x_usart.h"
  4.  
  5. void TM_USART_Init(USART_TypeDef* USARTx, TM_USART_PinsPack_t pinspack, uint32_t baudrate);
  6.  
  7. void InitTimer(void)
  8. {
  9.     TIM_TimeBaseInitTypeDef base_timer;
  10.   TIM_TimeBaseStructInit(&base_timer);
  11.    
  12.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
  13.    
  14.     base_timer.TIM_Prescaler = 36000 - 1;
  15.     base_timer.TIM_Period = 2000;
  16.     TIM_TimeBaseInit(TIM6, &base_timer);
  17.    
  18.     TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE);
  19.     TIM_Cmd(TIM6, ENABLE);
  20.    
  21.     NVIC_EnableIRQ(TIM6_DAC1_IRQn);
  22. }
  23.  
  24. void InitPort(void)
  25. {
  26.    GPIO_InitTypeDef  GPIO_InitStructure;
  27.    
  28.    /* Ðàçðåøèòü òàêòèðîâàíèå GPIOx */
  29.    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
  30.    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
  31.    
  32.    /* Êîíôèãóðèðîâàíèå íîæêè PA7, òóäà ïîäêëþ÷åí ñâåòîäèîä */
  33.    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  34.    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  35.    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  36.    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  37.    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  38.    GPIO_Init(GPIOA, &GPIO_InitStructure);
  39.  
  40.      return;
  41. }
  42.  
  43. int main(void)
  44. {
  45.     uint8_t c;
  46.    
  47.     InitPort();
  48.     InitTimer();
  49.     TM_USART_Init(USART2, TM_USART_PinsPack_2, 115200);
  50.    
  51.     GPIO_SetBits(GPIOA, GPIO_Pin_7); //ñâåòîäèîä ãîðèò
  52.  
  53.   TM_USART_Puts(USART2, "STM32F37xx switcher v1.0\r");
  54.     TM_USART_Puts(USART2, "Please, press '1' or '0'\n\r");
  55.    
  56.     while (1)
  57.   {
  58.         c = TM_USART_Getc(USART1);
  59.         switch (c) {
  60.                     case '1':
  61.                       GPIO_SetBits(GPIOA, GPIO_Pin_7); //ñâåòîäèîä ãîðèò
  62.             TM_USART_Puts(USART2, "LED is on\n\r");
  63.                       TIM_Cmd(TIM6, DISABLE);
  64.                         break;
  65.                     case '0':
  66.                       GPIO_ResetBits(GPIOA, GPIO_Pin_7); //ñâåòîäèîä íå ãîðèò
  67.             TM_USART_Puts(USART2, "LED is off\n\r");
  68.                       TIM_Cmd(TIM6, DISABLE);
  69.                         break;                 
  70.         }
  71.   }
  72. }
  73.  
  74. void TIM6_DAC1_IRQHandler(void)
  75. {
  76.   if (TIM_GetITStatus(TIM6, TIM_IT_Update) != RESET)
  77.         {
  78.             GPIOA->ODR ^= GPIO_Pin_7; //ïåðåêëþ÷àåì âûõîä ñâåòîäèîäà
  79.             TM_USART_Puts(USART2, "Hi, i am STM32F373 :)\n\r");
  80.             TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
  81.         }  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement