コード例 #1
0
/**
  * @brief Koovox_send_message
  * @param  
  *		msg: the address point of the message
  *		len: the length of the message
  * @retval None
  */
void Koovox_send_message(uint8_t* msg, uint8_t len)
{
	uint8_t i = 0;

	for(; i<len; i++)
	{
		USART_SendData8(USART1, msg[i]);
		while(!USART_GetFlagStatus(USART1, USART_FLAG_TXE));
	}

	USART_SendData8(USART1, '{');
	while(!USART_GetFlagStatus(USART1, USART_FLAG_TXE));
	
	USART_SendData8(USART1, '}');
	while(!USART_GetFlagStatus(USART1, USART_FLAG_TXE));

}
コード例 #2
0
ファイル: tasks.c プロジェクト: zk1132/contiki
void uart_send_byte(int len,unsigned char *data)
{
  int i = 0;
  //GPIO_WriteBit(GPIOD, GPIO_Pin_0, SET);
  for(i = 0;i < len;i ++)
  {
    while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) != SET);
    USART_SendData8(USART1,data[i]);
  }
  //GPIO_WriteBit(GPIOD, GPIO_Pin_0, RESET);
}
コード例 #3
0
unsigned char _Device_Uart_Send_Bytes(unsigned char *sendByte, unsigned int length){
	unsigned int i;

    //if(Usart_Peripheral_Enable_Flag == DeviceOff){
    if((Usart_Peripheral_Flag & fUart_Enable) == 0){
        return Func_Fail;
    }
#if (_Set_UART_AS_Half_Duplex_Transmission_ == 1)
    _Device_Set_Uart_RX_Interrupt(DeviceOff);
#endif

    //GPIO_WriteHigh(LED2_PORT, LED2_PIN);


    //set TX status
//    GPIO_WriteHigh(URAT_TX_Setting_PORT, URAT_TX_Setting_PIN);
//    GPIO_WriteHigh(URAT_TX_Setting_PORT, URAT_TX_Setting_PIN);  //for delay

	for(i = 0; i < length; i++){
		USART_SendData8(USART1, (*(sendByte + i)));
		SendingWhileTimeOutCount = 0;
		//while (USART_GetFlagStatus(USART1, UART2_FLAG_TXE) == RESET){     //Transmit Data Register Empty flag
		while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET){       //Transmission Complete flag
			if(SendingWhileTimeOutCount >= SendingTimeOutCycle){
				break;
			}
			SendingWhileTimeOutCount++;
		}//while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
    }
    //disable TX status
//    GPIO_WriteLow(URAT_TX_Setting_PORT, URAT_TX_Setting_PIN);
//    GPIO_WriteLow(URAT_TX_Setting_PORT, URAT_TX_Setting_PIN);  //for delay

    //GPIO_WriteLow(LED2_PORT, LED2_PIN);

#if (_Set_UART_AS_Half_Duplex_Transmission_ == 1)
    _Device_Set_Uart_RX_Interrupt(DeviceOn);
#endif
    return Func_Complete;
}
コード例 #4
0
ファイル: main.c プロジェクト: avr-master/Healty_Beck
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
void main(void)
{
#ifdef USART_IrDA_TRANSMIT
  JOYState_TypeDef Key = (JOYState_TypeDef)0;
#else /* USART_IrDA_RECEIVE */
  uint8_t ReceivedData = 0;
#endif /*USART_IrDA_TRANSMIT*/

   /* USART configuration -------------------------------------------*/
  USART_Config();

#ifdef USART_IrDA_TRANSMIT
  while (1)
  {
    /* Read Key */
    while (Key == JOY_NONE)
    {
      Key = ReadJoystick();
    }

    switch (Key)
    {
      case JOY_UP:
        USART_SendData8(EVAL_COM1, JOY_UP);
        while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)
        {}
        Key = JOY_NONE;
        break;
      case JOY_DOWN:
        USART_SendData8(EVAL_COM1, JOY_DOWN);
        while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)
        {}
        Key = JOY_NONE;
        break;
      case JOY_LEFT:
        USART_SendData8(EVAL_COM1, JOY_LEFT);
        while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)
        {}
        Key = JOY_NONE;
        break;
      case JOY_RIGHT:
        USART_SendData8(EVAL_COM1, JOY_RIGHT);
        while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)
        {}
        Key = JOY_NONE;
        break;
      case JOY_SEL:
        USART_SendData8(EVAL_COM1, JOY_SEL);
        while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)
        {}
        Key = JOY_NONE;
        break;
      default:
        break;
    }
  }
#else /* USART_IrDA_RECEIVE */
  /* Initialize I/Os in Output Mode for LEDs */
  STM_EVAL_LEDInit(LED1);
  STM_EVAL_LEDInit(LED2);
  STM_EVAL_LEDInit(LED3);
  STM_EVAL_LEDInit(LED4);

  /* Turn on LEDs */
  STM_EVAL_LEDOn(LED1);
  STM_EVAL_LEDOn(LED2);
  STM_EVAL_LEDOn(LED3);
  STM_EVAL_LEDOn(LED4);

  while (1)
  {
    /* Wait until a byte is received */
    while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_RXNE) == RESET)
    {}
    /* Read the received byte */
    ReceivedData = USART_ReceiveData8(EVAL_COM1);

    switch (ReceivedData)
    {
        /* LED4 toggle */
      case JOY_UP:
        STM_EVAL_LEDToggle(LED4);
        break;
        /* LED3 toggle */
      case JOY_DOWN:
        STM_EVAL_LEDToggle(LED3);
        break;
        /* LED2 toggle */
      case JOY_LEFT:
        STM_EVAL_LEDToggle(LED2);
        break;
        /* LED1 toggle */
      case JOY_RIGHT:
        STM_EVAL_LEDToggle(LED1);
        break;

      case JOY_SEL:
        STM_EVAL_LEDToggle(LED1);
        STM_EVAL_LEDToggle(LED2);
        STM_EVAL_LEDToggle(LED3);
        STM_EVAL_LEDToggle(LED4);
        break;
      default:
        break;
    }
  }
#endif /*USART_IrDA_TRANSMIT*/
}
コード例 #5
0
ファイル: main.c プロジェクト: HorseMa/contiki
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
void main(void)
{
  uint32_t index = 0;

   /* CLK configuration -------------------------------------------*/
  CLK_Config(); 
 
  /* Set the MOSI and SCK at high level */
  GPIO_ExternalPullUpConfig(GPIOB, GPIO_Pin_6 | GPIO_Pin_5, ENABLE);

#ifdef USE_STM8L1526_EVAL
  /* Set USART CK at high level */
  GPIO_ExternalPullUpConfig(GPIOC, GPIO_Pin_4, ENABLE);
#else /* USE_STM8L1528_EVAL is defined */
  /* Set USART CK at high level */
  GPIO_ExternalPullUpConfig(GPIOH, GPIO_Pin_6, ENABLE);
#endif  /* USE_STM8L1526_EVAL */

   /* USART configuration -------------------------------------------*/
  USART_Config(); 
  
   /* SPI configuration -------------------------------------------*/
  SPI_Config(); 
  
  /*Disable USART the master*/
  USART_Cmd(EVAL_COM1, DISABLE);

   /* DMA configuration -------------------------------------------*/
  DMA_Config(); 
 
  /* Enable USART */
  USART_Cmd(EVAL_COM1, ENABLE);

  /* Insert Delay to ensure Synchro w/ SPI */
  for (index = 0; index < 0xFF; index++);

  /* Enable SPI */
  SPI_Cmd(SPI1, ENABLE);

  USART_ITConfig(EVAL_COM1, USART_IT_TC, ENABLE);

  /* Wait until Data transmitted to SPI*/
  while (UsartTransferStatus != 2);
  /* Wait the SPI DMA Rx transfer complete */
  while (DMA_GetFlagStatus((DMA_FLAG_TypeDef)SPI_DMA_FlagTCRx) == RESET);


  /* Check the correctness of written dada */
  TransferStatus1 = Buffercmp((uint8_t*)RxBuffer1, SPIBuffer_Rx, RX_BUFFER_SIZE);
  /* TransferStatus1 = PASSED, if the received data by USART and received data
    by SPI1 are the same */
  /* TransferStatus1 = FAILED, if the received data by USART and received data
     by SPI1 are different */

  if (TransferStatus1 != FAILED)
  {
    for (index = 0; index < MESSAGE2_SIZE; index++)
    {
      /* Wait while USART TC = 0 */
      while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET);
      /* Send on byte from stm8l15x USART to HyperTerminal */
      USART_SendData8(EVAL_COM1, Message2[index]);
    }
  }
  else
  {
    for (index = 0; index < MESSAGE3_SIZE; index++)
    {
      /* Wait while USART TC = 0 */
      while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET);
      /* Send on byte from stm8l15x USART to HyperTerminal */
      USART_SendData8(EVAL_COM1, Message3[index]);
    }
  }

  while (1)
  {}
}