Пример #1
0
/*====================================================================================================*/
int main( void )
{
  int32_t Temp = 0;

  GPIO_Config();
  TEMP_Config();
  RS232_Config();

  Delay_1ms(1);

  RS232_SendStr("\r\nHello World!\r\n\r\n");

  while(1) {
    LED_1_Toggle();
    LED_2_Toggle();
    LED_3_Toggle();
    LED_4_Toggle();
    Delay_100ms(5);

    RS232_SendStr("Chip Temp : ");
    Temp = (TEMP_GetTemp()*25);
    RS232_SendNum(Type_D, 5, Temp);
    RS232_SendStr(" deg\r\n");
  }
}
Пример #2
0
/******************************************************************************
 * @Function RS232_Config
 * @Brief    Config RS232 at STM32F4 USART3:
 *					 	BaudRate							9600
 *           	WordLength						8-bits
 *					 	StopBits							1
 *					 	HardwareFlowControl		None
 *					 	Mode									Tx & Rx
 *
 **/
void RS232_Config( void )
{
	GPIO_InitTypeDef GPIO_InitStruct;
	USART_InitTypeDef USART_InitStruct;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,  ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

	GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2);
	GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2);

 	/* USART3 Tx PA2 */	/* USART3 Rx PA3 */
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
	GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStruct);

	USART_InitStruct.USART_BaudRate = 9600;
	USART_InitStruct.USART_WordLength = USART_WordLength_8b;
	USART_InitStruct.USART_StopBits = USART_StopBits_1;
	USART_InitStruct.USART_Parity = USART_Parity_No;
	USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
	USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
	USART_Init(USART2, &USART_InitStruct);
	USART_Cmd(USART2, ENABLE);
	
	// initial at line one column 1
	RS232_SendStr(USART2, (u8*) "\r");
	
}
Пример #3
0
/*====================================================================================================*/
int main( void )
{
  static uint8_t i = 0;
  static uint8_t RecvData = 0;
  static int8_t State = ERROR;

  GPIO_Config();
  RS232_Config();

  LED_R = 0;

  printf("\r\nHello World!\r\n\r\n");

  while(1) {
    LED_G = !LED_G;
    State = RS232_RecvDataWTO((int8_t*)&RecvData, 1, 200);
    if(State == ERROR) {
      printf("Timeout ... %d\r\n", i);
      i = (i == 255) ? 0 : i + 1;
    }
    else if(RecvData == 0x0D)  // if press enter
      RS232_SendStr((int8_t*)"\r\n");
    else
      RS232_SendData((int8_t*)&RecvData, 1);
  }
}
Пример #4
0
/*====================================================================================================*/
void UART0_IRQHandler( void )
{
  u8 RecvData = 0;

  RS232_RecvByte(&RecvData);
  if(RecvData == 0x0D)
    RS232_SendStr((u8*)"\r\n");
  else
    RS232_SendByte(RecvData);
}
/*=====================================================================================================*/
int main( void )
{
  SystemInit();
  GPIO_Config();
  ADC_Config();
  RS232_Config();

  while(1) {
    LED_G = ~LED_G;
    ADC_Average(ADC_AveTr);

    RS232_SendStr(USART3, (u8*)"ADC_1 = ");
    RS232_SendNum(USART3, Type_D, 5, ADC_AveTr[0]);
    RS232_SendStr(USART3, (u8*)"\r\n");
    RS232_SendStr(USART3, (u8*)"ADC_2 = ");
    RS232_SendNum(USART3, Type_D, 5, ADC_AveTr[1]);
    RS232_SendStr(USART3, (u8*)"\r\n\r\n");
  }
}
/*====================================================================================================*/
void USART1_IRQHandler( void )
{
  uint8_t RecvData = 0;

  if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {
    RecvData = RS232_RecvByte();
    if(RecvData == 0x0D)
      RS232_SendStr((int8_t*)"\r\n");
    else
      RS232_SendByte(RecvData);
  }
  USART_ClearFlag(USART1, USART_IT_RXNE);
}
/*=====================================================================================================*/
int main( void )
{
  u16 ADC_AVE[2] = {0};

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

  while(1) {
    LED_G = !LED_G;
    Delay_100ms(1);
    ADC_Average(ADC_AVE, 128);
    RS232_SendStr((u8*)"\f");
    RS232_SendStr((u8*)"ADC_I = ");
    RS232_SendNum(Type_D, 4, ADC_AVE[0]);
    RS232_SendStr((u8*)"\r\n");
    RS232_SendStr((u8*)"ADC_V = ");
    RS232_SendNum(Type_D, 4, ADC_AVE[1]);
    RS232_SendStr((u8*)"\r\n");
  }
}
Пример #8
0
/*====================================================================================================*/
int main( void )
{
  u8 i = 0;

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

  while(1) {
    LED = !LED;

    i++;

    RS232_SendStr((u8*)"i = ");
    RS232_SendNum(Type_D, 3, i);
    RS232_SendStr((u8*)"\r\n");

    if(i==255)  i = 0;

    Delay_100ms(1);
  }
}
void NRF_FTLR( void ) // First Tx Last Rx
{
  u8 i = 0;
  u8 Sta = ERROR;

  static u8 FSM_STA = 0;

  switch(FSM_STA) {

    /************************** FSM Tx **************************************/
    case 0:
      // FSM_Tx
      // 資料寫入 TX BUF
      for(i=0; i<32; i++) {
        TxBuf[i] = RxBuf[i] + i;
        if(TxBuf[i]>220)
          TxBuf[i] = 0;
      }
      do {
        Sta = NRF_TxPacket(TxBuf);
      } while(Sta == NRF_STA_MAX_RT);
      // FSM_Tx End
      FSM_STA = 1;
      break;

    /************************** FSM Rx **************************************/
    case 1:
      // FSM_Rx
      NRF_RX_Mode();
      Sta = NRF_RxPacket(RxBuf);
      if(Sta == NRF_STA_RX_DR) {
        LED_B = !LED_B;
      }
      // FSM_Rx End
      FSM_STA = 2;
      break;

    /************************** FSM USART **************************************/
    case 2:
      // FSM_USART
      Delay_10ms(20);
      RS232_SendStr((u8*)"\f");
      RS232_SendStr((u8*)"***NRF_MODE_FTLR\r\n");
      for(i=0; i<32; i++) {
        RS232_SendStr((u8*)"RxBuf[");
        RS232_SendNum(Type_D, 2, i);
        RS232_SendStr((u8*)"] = ");
        RS232_SendNum(Type_D, 3, TxBuf[i]);
        RS232_SendStr((u8*)"\r\n");
      }
      RS232_SendStr((u8*)"\r\n");
      // FSM_USART End
      FSM_STA = 0;
      break;
  }
}
Пример #10
0
/*====================================================================================================*/
int main( void )
{
  GPIO_Config();
  RS232_Config();

  Delay_1ms(1);

  RS232_SendStr("\r\nHello World!\r\n\r\n");

  while(1) {
    LED_1_Toggle();
    LED_2_Toggle();
    LED_3_Toggle();
    LED_4_Toggle();
    Delay_100ms(5);
  }
}
int main( void )
{
  u32 i = 0;
  u8 FileNum = 0;
  u8 ReadBuf[128] = {0};
  u8 WriteData[50] = "ABCDEFG";

  SystemInit();
  GPIO_Config();
  RS232_Config();
  R61581_Config();
  R61581_Init();

  LED_R = 1;
  LED_G = 1;
  LED_B = 1;
  LED_Y = 1;

  LED_R = 0;
  LCD_Clear(BLACK);

  // SD Card Init Info
  #define Axis_X 10
  #define Axis_Y 0
  LCD_PutStr(Axis_X, Axis_Y+16*0, (u8*)"-----------------------", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X, Axis_Y+16*1, (u8*)" SDIO SD Fatfs demo",     ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X, Axis_Y+16*2, (u8*)"-----------------------", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X, Axis_Y+16*3, (u8*)" SD Init ... ", ASCII1608, WHITE, BLACK);
  RS232_SendStr(USART2, (u8*)" \r\n");
  RS232_SendStr(USART2, (u8*)"----------------------\r\n");
  RS232_SendStr(USART2, (u8*)"----------------------\r\n");
  RS232_SendStr(USART2, (u8*)" SDIO SD FatFs demo\r\n");
  RS232_SendStr(USART2, (u8*)"----------------------\r\n");
  RS232_SendStr(USART2, (u8*)"----------------------\r\n\r\n");
  RS232_SendStr(USART2, (u8*)" SD Init ... ");
  while(SD_Init() != SD_OK) {
    LCD_PutStr(Axis_X+8*13, Axis_Y+16*3, (u8*)"Failed!!", ASCII1608, WHITE, BLACK);
    RS232_SendStr(USART2, (u8*)"Failed!!\r\n");
    while(1) {
      LED_R = ~LED_R;
      Delay_100ms(2);
    }
  }
  LCD_PutStr(Axis_X+8*13, Axis_Y+16*3, (u8*)"OK!!", ASCII1608, WHITE, BLACK);
  RS232_SendStr(USART2, (u8*)"OK!!\r\n\r\n");

  LCD_PutStr(Axis_X,      Axis_Y+16*5,  (u8*)"---- SD Init Info -----", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X,      Axis_Y+16*6,  (u8*)" Capacity : ", ASCII1608, WHITE, BLACK);
  LCD_PutNum(Axis_X+8*12, Axis_Y+16*6,  Type_D, 5, SDCardInfo.CardCapacity>>20, WHITE, BLACK);
  LCD_PutStr(Axis_X+8*17, Axis_Y+16*6,  (u8*)" MB", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X,      Axis_Y+16*7,  (u8*)" CardBlockSize : ", ASCII1608, WHITE, BLACK);
  LCD_PutNum(Axis_X+8*17, Axis_Y+16*7,  Type_D, 5, SDCardInfo.CardBlockSize, WHITE, BLACK);
  LCD_PutStr(Axis_X+8*22, Axis_Y+16*7,  (u8*)" ", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X,      Axis_Y+16*8,  (u8*)" CardType : ", ASCII1608, WHITE, BLACK);
  LCD_PutNum(Axis_X+8*12, Axis_Y+16*8,  Type_D, 5, SDCardInfo.CardType, WHITE, BLACK);
  LCD_PutStr(Axis_X+8*17, Axis_Y+16*8,  (u8*)" ", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X,      Axis_Y+16*9,  (u8*)" RCA : ", ASCII1608, WHITE, BLACK);
  LCD_PutNum(Axis_X+8*7,  Axis_Y+16*9,  Type_D, 5, SDCardInfo.RCA, WHITE, BLACK);
  LCD_PutStr(Axis_X+8*12, Axis_Y+16*9,  (u8*)" ", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X,      Axis_Y+16*10, (u8*)"-----------------------", ASCII1608, WHITE, BLACK);
  RS232_SendStr(USART2, (u8*)"-----SD Init Info-----\r\n");
  RS232_SendStr(USART2, (u8*)" Capacity : ");
  RS232_SendNum(USART2, Type_D, 5, SDCardInfo.CardCapacity>>20);
  RS232_SendStr(USART2, (u8*)" MB\r\n");
  RS232_SendStr(USART2, (u8*)" CardBlockSize : ");
  RS232_SendNum(USART2, Type_D, 5, SDCardInfo.CardBlockSize);
  RS232_SendStr(USART2, (u8*)"\r\n");
  RS232_SendStr(USART2, (u8*)" CardType : ");
  RS232_SendNum(USART2, Type_D, 5, SDCardInfo.CardType);
  RS232_SendStr(USART2, (u8*)"\r\n");
  RS232_SendStr(USART2, (u8*)" RCA : ");
  RS232_SendNum(USART2, Type_D, 5, SDCardInfo.RCA);
  RS232_SendStr(USART2, (u8*)"\r\n");
  RS232_SendStr(USART2, (u8*)"----------------------\r\n");
  RS232_SendStr(USART2, (u8*)"\r\n");

  Delay_100ms(1);
  //////////////////// Wait
  while(KEY_S2 != 1){
    LED_G = ~LED_G;
    Delay_100ms(5);
  }
  LED_G = 0;
  LCD_Clear(BLACK);

  // Read Directory File
  LCD_PutStr(Axis_X, Axis_Y+16*0, (u8*)"-----------------------", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X, Axis_Y+16*1, (u8*)" SD_Card Read Directory", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X, Axis_Y+16*2, (u8*)"-----------------------", ASCII1608, WHITE, BLACK);
  RS232_SendStr(USART2, (u8*)"----------------------\r\n");
  RS232_SendStr(USART2, (u8*)" SD_Card Read Directory File\r\n");
  RS232_SendStr(USART2, (u8*)"----------------------\r\n\r\n");

  res = f_mount(&FatFs, "", 1);
  res = f_opendir(&dirs, "0:/");
  res = f_readdir(&dirs, &finfo);
  while(res!= FR_OK) {
    LCD_PutStr(Axis_X, Axis_Y+16*3, (u8*)" Fatfs failed!!", ASCII1608, WHITE, BLACK);
    RS232_SendStr(USART2, (u8*)" FatFs failed!!\r\n");
    while(1) {
      LED_R = ~LED_R;
      Delay_100ms(2);
    }
  }
  LCD_PutStr(Axis_X, Axis_Y+16*3, (u8*)" File name : ", ASCII1608, WHITE, BLACK);
  RS232_SendStr(USART2, (u8*)" File name : \r\n");

  while(finfo.fname[0]) {
    f_readdir(&dirs, &finfo);
    if(!finfo.fname[0])
      break;
    if(FileNum<11) {
      LCD_PutStr(Axis_X,     Axis_Y+16*(3+FileNum), (u8*)" ... ", ASCII1608, WHITE, BLACK);
      LCD_PutStr(Axis_X+8*5, Axis_Y+16*(3+FileNum), (u8*)finfo.fname, ASCII1608, WHITE, BLACK);
    }
    else if((FileNum>=11) && (FileNum<22)) {
      LCD_PutStr(Axis_X+200,     Axis_Y+16*(3+FileNum-11), (u8*)" ... ", ASCII1608, WHITE, BLACK);
      LCD_PutStr(Axis_X+8*5+200, Axis_Y+16*(3+FileNum-11), (u8*)finfo.fname, ASCII1608, WHITE, BLACK);
    }
    else {
      FileNum = 0;
      break;
    }
    FileNum++;
    RS232_SendStr(USART2, (u8*)" ... ");
    RS232_SendStr(USART2, (u8*)finfo.fname);
    RS232_SendStr(USART2, (u8*)"\r\n");
  }

  Delay_100ms(1);
  //////////////////// Wait
  while(KEY_S2 != 1){
    LED_B = ~LED_B;
    Delay_100ms(5);
  }
  LED_B = 0;
  LCD_Clear(BLACK);

  // Write File
  LCD_PutStr(Axis_X, Axis_Y+16*0, (u8*)"-----------------------", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X, Axis_Y+16*1, (u8*)" SD_Card Write Data",     ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X, Axis_Y+16*2, (u8*)"-----------------------", ASCII1608, WHITE, BLACK);
  RS232_SendStr(USART2, (u8*)"-----------------------\r\n");
  RS232_SendStr(USART2, (u8*)" SD_Card Write Data File\r\n");
  RS232_SendStr(USART2, (u8*)"-----------------------\r\n\r\n");

  LCD_PutStr(Axis_X, Axis_Y+16*3, (u8*)" f_open ... ", ASCII1608, WHITE, BLACK);
  RS232_SendStr(USART2, (u8*)" f_open ... ");
  res = f_open(&file,"SDCard_K.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE);
  if(res==FR_OK) {
    LCD_PutStr(Axis_X+8*12, Axis_Y+16*3, (u8*)"OK!!", ASCII1608, WHITE, BLACK);
    RS232_SendStr(USART2, (u8*)"OK!!\r\n");
  }
  else {
    LCD_PutStr(Axis_X+8*12, Axis_Y+16*3, (u8*)"failed!!", ASCII1608, WHITE, BLACK);
    RS232_SendStr(USART2, (u8*)"failed!!\r\n");
  }

  LCD_PutStr(Axis_X, Axis_Y+16*4, (u8*)" f_write ... ", ASCII1608, WHITE, BLACK);

  RS232_SendStr(USART2, (u8*)" f_write ... ");
  res = f_write(&file, WriteData, 20, &i); 
  if(res==FR_OK) {
    LCD_PutStr(Axis_X+8*13, Axis_Y+16*4, (u8*)"OK!!", ASCII1608, WHITE, BLACK);
    RS232_SendStr(USART2, (u8*)"OK!!\r\n");
  }
  else {
    LCD_PutStr(Axis_X+8*13, Axis_Y+16*4, (u8*)"failed!!", ASCII1608, WHITE, BLACK);
    RS232_SendStr(USART2, (u8*)"failed!!\r\n");
  }

  file.fptr = 0;

  LCD_PutStr(Axis_X, Axis_Y+16*5, (u8*)" f_read ... ", ASCII1608, WHITE, BLACK);
  RS232_SendStr(USART2, (u8*)" f_read ... ");
  res = f_read(&file, ReadBuf, 100, &i);
  if(res==FR_OK) {
    LCD_PutStr(Axis_X+8*12, Axis_Y+16*5, (u8*)"OK!!", ASCII1608, WHITE, BLACK);
    RS232_SendStr(USART2, (u8*)"OK!!\r\n");
  }
  else {
    LCD_PutStr(Axis_X+8*12, Axis_Y+16*5, (u8*)"failed!!", ASCII1608, WHITE, BLACK);
    RS232_SendStr(USART2, (u8*)"failed!!\r\n");
  }

  f_close(&file);

  LCD_PutStr(Axis_X, Axis_Y+16*7, (u8*)" Read String : ", ASCII1608, WHITE, BLACK);
  LCD_PutStr(Axis_X+8*1, Axis_Y+16*8, (u8*)ReadBuf, ASCII1608, WHITE, BLACK);
  RS232_SendStr(USART2, ReadBuf);

  while(1) {
    LED_Y = ~LED_Y;
    Delay_100ms(2);
  }
}
Пример #12
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);
  }
}