Пример #1
0
void vParTestInitialise( void )
{
    /* Configure the bits used to flash LED's on port 1 as output. */
    GPIO_Config(GPIO1, partstALL_LEDs, GPIO_OUT_OD);
}
Пример #2
0
int main(void) {
	FRESULT fresult;

	NVIC_InitTypeDef nvicStructure;

	SystemInit();

	GPIO_Config();
	SPI_Config();
	/*
	 for(i1=0;i1<TABLE_SIZE;i1++){
	 buffer[0][i1] = 4*i1;
	 }

	 for(i1=0;i1<TABLE_SIZE;i1++){
	 buffer[1][i1] = 2047*sin(currentPhase)+2047;
	 currentPhase += phaseIncrement;
	 }
	 */

	/* Configure LED3 and LED4 on STM32L100C-Discovery */
	STM_EVAL_LEDInit(LED3);
	STM_EVAL_LEDInit(LED4);



	/* SysTick end of count event each 1ms */
	//RCC_GetClocksFreq(&RCC_Clocks);
	// SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000);
	//delay_init(72);//
	delay_init(16);
	Lcd_Init2();

	Lcd_Clear2(BLACK);

	/* RTC configuration */
	//RTC_Config();
	RTC_Config32768Internal();

	/* Configure RTC alarm A register to generate 8 interrupts per 1 Second */
	RTC_AlarmConfig();

	tft_puts(45, 20, "12:00", white, black);

	RCC_ClocksTypeDef RCC_Clocks;

	/* Initialize User_Button on STM32L100C-Discovery */
	STM_EVAL_PBInit(BUTTON_MODE, BUTTON_MODE_GPIO);
	STM_EVAL_PBInit(BUTTON_UP, BUTTON_MODE_GPIO);
	STM_EVAL_PBInit(BUTTON_DOWN, BUTTON_MODE_GPIO);
	//STM_EVAL_PBInit(BUTTON_MODE, BUTTON_MODE_EXTI);

	/* SysTick end of count event each 1ms */
	//   RCC_GetClocksFreq(&RCC_Clocks);
	//   SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000);

	/*************************/

	//TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

	nvicStructure.NVIC_IRQChannel = TIM2_IRQn;
	nvicStructure.NVIC_IRQChannelPreemptionPriority = 0;
	nvicStructure.NVIC_IRQChannelSubPriority = 1;
	nvicStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&nvicStructure);

	TIM_TimeBaseInitTypeDef timerInitStructure;
	timerInitStructure.TIM_Prescaler = 3200; //32 MHz/3200 = 10000
	timerInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
	//timerInitStructure.TIM_Period = 3332;
	timerInitStructure.TIM_Period = 100; //10 000/100 = 100 Hz - sampling frequency of buttons
	timerInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;

	//timerInitStructure.TIM_RepetitionCounter = 0;
	TIM_TimeBaseInit(TIM2, &timerInitStructure);
	TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
	TIM_Cmd(TIM2, ENABLE);

	/*************************/

	//GPIO_PinAFConfig(GPIOA, GPIO_PinSource4, GPIO_AF_SPI1);
	GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_SPI1);
	GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_SPI1);
	GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_SPI1);





	fresult = f_mount(&g_sFatFs, "0:0", 1);

	//LCD_BMP("kasia.bmp");

	//Gui_DrawFont_GBK24_bk(20,120, BLUE, WHITE, "1234 abcd");

	//playWav("rct3.wav"); // fsamp 22050 Hz, 8bit



	/* tests */
	//playWav("m8m.wav"); // fsamp 44100 Hz, 8 bit
	//playWav("bj8.wav"); // fsamp 44100 Hz, 8 bit
	//playWav("im16.wav");  // fsamp 44100 Hz, 16 bit

	//playWavFromIntMemory(rooster3);


	displayDate();

	while (1) {
		if (updated) {
			displayTime();
			updated = false;

			if(updateDate){
							updateAndDisplayDate();
							updateDate = false;
					}

		}





	}

}
Пример #3
0
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */ 
int main(void)
{  
  /* STM32F4xx HAL library initialization:
       - Configure the Flash prefetch, instruction and Data caches
       - Configure the Systick to generate an interrupt each 1 msec
       - Set NVIC Group Priority to 4
       - Global MSP (MCU Support Package) initialization
     */
  HAL_Init();  
  
  /* Configure the system clock to have a system clock = 180 Mhz */
  SystemClock_Config();
  
  /* Init the STemWin GUI Library */
 BSP_SDRAM_Init(); /* Initializes the SDRAM device */
 __CRC_CLK_ENABLE(); /* Enable the CRC Module */
	
	
//	__PWR_CLK_ENABLE();
//	HAL_PWR_EnableBkUpAccess();

//	__HAL_RCC_LSE_CONFIG(RCC_LSE_BYPASS);
//	__HAL_RCC_RTC_ENABLE();
	
	/*##-1- Configure the RTC peripheral #######################################*/
  RtcHandle.Instance = RTC;
  
  /* Configure RTC prescaler and RTC data registers */
  /* RTC configured as follow:
      - Hour Format    = Format 24
      - Asynch Prediv  = Value according to source clock
      - Synch Prediv   = Value according to source clock
      - OutPut         = Output Disable
      - OutPutPolarity = High Polarity
      - OutPutType     = Open Drain */ 
  RtcHandle.Init.HourFormat = RTC_HOURFORMAT_24;
  RtcHandle.Init.AsynchPrediv = RTC_ASYNCH_PREDIV;
  RtcHandle.Init.SynchPrediv = RTC_SYNCH_PREDIV;
  RtcHandle.Init.OutPut = RTC_OUTPUT_DISABLE;
  RtcHandle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
  RtcHandle.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
  
  if(HAL_RTC_Init(&RtcHandle) != HAL_OK)
  {
    /* Initialization Error */
    Error_Handler(); 
  }
   
  /*##-2- Check if Data stored in BackUp register0: No Need to reconfigure RTC#*/
  /* Read the BackUp Register 0 Data */
  if(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR0) != 0x32F2)
  {  
    /* Configure RTC Calendar */
    RTC_CalendarConfig();
  }
  else
  {
    /* Check if the Power On Reset flag is set */  
    if(__HAL_RCC_GET_FLAG(RCC_FLAG_PORRST) != RESET)
    {
     
    }
    /* Check if Pin Reset flag is set */
    if(__HAL_RCC_GET_FLAG(RCC_FLAG_PINRST) != RESET)
    {
     
    }
    
    /* Clear Reset Flag */
    __HAL_RCC_CLEAR_RESET_FLAGS();
  }
	
  
	
  GUI_Init();  
  //GUI_Initialized = 1;
  GPIO_Config();
	if(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1) ==0)
	{
		 HAL_RTCEx_BKUPWrite(&RtcHandle,RTC_BKP_DR1,600);  
	}
	Time3Enable(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1));

  /* Activate the use of memory device feature */
  WM_SetCreateFlags(WM_CF_MEMDEV);
    
 os_sys_init (init); 
  
}
Пример #4
0
BOOL
xMBPortSerialInit( UCHAR ucPort, ULONG ulBaudRate, UCHAR ucDataBits, eMBParity eParity )
{
    BOOL            xResult = TRUE;
    UARTParity_TypeDef eUARTParity;
    UARTMode_TypeDef eUARTMode;

    (void)ucPort;

    switch ( eParity )
    {
        case MB_PAR_EVEN:
            eUARTParity = UART_EVEN_PARITY;
            break;
        case MB_PAR_ODD:
            eUARTParity = UART_ODD_PARITY;
            break;
        case MB_PAR_NONE:
            eUARTParity = UART_NO_PARITY;
            break;
    }

    switch ( ucDataBits )
    {
        case 7:
            if( eParity == MB_PAR_NONE )
            {
                /* not supported by our hardware. */
                xResult = FALSE;
            }
            else
            {
                eUARTMode = UARTM_7D_P;
            }
            break;
        case 8:
            if( eParity == MB_PAR_NONE )
            {
                eUARTMode = UARTM_8D;
            }
            else
            {
                eUARTMode = UARTM_8D_P;
            }
            break;
        default:
            xResult = FALSE;
    }

    if( xResult != FALSE )
    {
        /* Setup the UART port pins. */
        GPIO_Config( MB_UART_TX_PORT, 1 << MB_UART_TX_PIN, GPIO_AF_PP );
        GPIO_Config( MB_UART_RX_PORT, 1 << MB_UART_RX_PIN, GPIO_IN_TRI_CMOS );

        /* Configure the UART. */
        UART_OnOffConfig( MB_UART_DEV, ENABLE );
        UART_FifoConfig( MB_UART_DEV, DISABLE );
        UART_FifoReset( MB_UART_DEV, UART_RxFIFO );
        UART_FifoReset( MB_UART_DEV, UART_TxFIFO );
        UART_LoopBackConfig( MB_UART_DEV, DISABLE );
        UART_Config( MB_UART_DEV, ulBaudRate, eUARTParity, UART_1_StopBits,
                     eUARTMode );
        UART_RxConfig( UART0, ENABLE );
        vMBPortSerialEnable( FALSE, FALSE );

        /* Configure the IEC for the UART interrupts. */
        EIC_IRQChannelPriorityConfig( MB_UART_IRQ_CH, MB_IRQ_PRIORITY );
        EIC_IRQChannelConfig( MB_UART_IRQ_CH, ENABLE );
    }
    return xResult;
}
Пример #5
0
int main( void )
{
  u32 i = 0;
  u8 ReadBuf[128] = {0};
  u8 TrData[8][32] = {0};
  u8 WriteData[50] = "ABCDEFG";

  SystemInit();
  GPIO_Config();
  RS232_Config();

  LED_R = 1;
  LED_G = 1;

  // SD Card Init Info
  RS232_SendStr(USART3, (u8*)" \r\n");
  RS232_SendStr(USART3, (u8*)"----------------------\r\n");
  RS232_SendStr(USART3, (u8*)"----------------------\r\n");
  RS232_SendStr(USART3, (u8*)" SDIO SD FatFs demo\r\n");
  RS232_SendStr(USART3, (u8*)"----------------------\r\n");
  RS232_SendStr(USART3, (u8*)"----------------------\r\n\r\n");
  RS232_SendStr(USART3, (u8*)" SD Init ... ");
  while(SD_Init() != SD_OK) {
    RS232_SendStr(USART3, (u8*)"Failed!!\r\n");
    while(1) {
      LED_R = ~LED_R;
      Delay_100ms(2);
    }
  }
  RS232_SendStr(USART3, (u8*)"OK!!\r\n\r\n");

  RS232_SendStr(USART3, (u8*)"-----SD Init Info-----\r\n");

  RS232_SendStr(USART3, (u8*)" Capacity : ");
  NumToChar(Type_D, 5, TrData[0], SDCardInfo.CardCapacity>>20);
  RS232_SendStr(USART3, TrData[0]);
  RS232_SendStr(USART3, (u8*)" MB\r\n");

  RS232_SendStr(USART3, (u8*)" CardBlockSize : ");
  NumToChar(Type_D, 5, TrData[1], SDCardInfo.CardBlockSize);
  RS232_SendStr(USART3, TrData[1]);
  RS232_SendStr(USART3, (u8*)"\r\n");

  RS232_SendStr(USART3, (u8*)" CardType : ");
  NumToChar(Type_D, 5, TrData[2], SDCardInfo.CardType);
  RS232_SendStr(USART3, TrData[2]);
  RS232_SendStr(USART3, (u8*)"\r\n");

  RS232_SendStr(USART3, (u8*)" RCA : ");
  NumToChar(Type_D, 5, TrData[3], SDCardInfo.RCA);
  RS232_SendStr(USART3, TrData[3]);
  RS232_SendStr(USART3, (u8*)"\r\n");
  RS232_SendStr(USART3, (u8*)"----------------------\r\n");
  RS232_SendStr(USART3, (u8*)"\r\n");

  // Wait
  while(KEY != 1){
    LED_G = ~LED_G;
    Delay_100ms(2);
  }

  // Read Directory File
  RS232_SendStr(USART3, (u8*)"----------------------\r\n");
  RS232_SendStr(USART3, (u8*)" SD_Card Read Directory File\r\n");
  RS232_SendStr(USART3, (u8*)"----------------------\r\n\r\n");

  res = f_mount(&FatFs, "", 1);
  res = f_opendir(&dirs, "0:/");
  res = f_readdir(&dirs, &finfo);
  while(res!= FR_OK) {
    RS232_SendStr(USART3, (u8*)" FatFs failed!!\r\n");
    while(1) {
      LED_R = ~LED_R;
      Delay_100ms(2);
    }
  }
  RS232_SendStr(USART3, (u8*)" File name : \r\n");

  while(finfo.fname[0]) {
    f_readdir(&dirs, &finfo);
    if(!finfo.fname[0])
      break;
    RS232_SendStr(USART3, (u8*)" ... ");
    RS232_SendStr(USART3, (u8*)finfo.fname);
    RS232_SendStr(USART3, (u8*)"\r\n");
  }

  // Wait
  while(KEY != 1){
    LED_G = ~LED_G;
    Delay_100ms(2);
  }

  // Write File
  RS232_SendStr(USART3, (u8*)" f_open ... ");
  res = f_open(&file,"SDCard_K.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE);
  if(res==FR_OK)
    RS232_SendStr(USART3, (u8*)"OK!!\r\n");
  else
    RS232_SendStr(USART3, (u8*)"failed!!\r\n");

  RS232_SendStr(USART3, (u8*)" f_write ... ");
  res = f_write(&file, WriteData, 20, (UINT *)&i); 
  if(res==FR_OK)
    RS232_SendStr(USART3, (u8*)"OK!!\r\n");
  else
    RS232_SendStr(USART3, (u8*)"failed!!\r\n");

  file.fptr = 0;

  RS232_SendStr(USART3, (u8*)" f_read ... ");
  res = f_read(&file, ReadBuf, 100, (UINT *)&i);
  if(res==FR_OK)
    RS232_SendStr(USART3, (u8*)"OK!!\r\n");
  else
    RS232_SendStr(USART3, (u8*)"failed!!\r\n");

  f_close(&file);

  RS232_SendStr(USART3, ReadBuf);

  while(1) {
    LED_G = ~LED_G;
    Delay_100ms(2);
  }
}