Esempio n. 1
0
void sendFrame(uint8_t ch, Mod_Master_Frame_TypeDef* aframe)
{
	if (ch != 2) return;
	
	aframe->respOK = FALSE;
	
	setTimeoutCheck(MOD_TIMER_STOP);
	setFrameCheck(MOD_TIMER_STOP);
	stopUART();
	
	aframe->request = FALSE;
	aframe->txCursor = 0;
	aframe->txOK = FALSE;



	
	aframe->modState = Mod_State_Sending;
	//for (ch = 0; ch < 100; ch ++)
	
	startTX();
	UART2_SendData8(aframe->txframe[0]);
	UART2_TIEN = TRUE;
	
	return;
}
Esempio n. 2
0
void UART2_SendByte(u8 data)
{
  UART2_SendData8((unsigned char)data);
	
  /* 等待传输结束 */
  while (UART2_GetFlagStatus(UART2_FLAG_TXE) == RESET);
}
Esempio n. 3
0
void mod_int_tx(void)
{
	uint16_t val;
	
	if (UART2_GetITStatus(UART2_IT_TXE) == SET)
	{
		UART2_ClearITPendingBit(UART2_IT_RXNE);
		if (modFrame.txCursor < (modFrame.txLen - 1))
		{
			modFrame.txCursor ++;
			if (modFrame.txCursor == 1)
				modFrame.txCursor = 0 + 1;
			UART2_SendData8(modFrame.txframe[modFrame.txCursor]);
			if (modFrame.txCursor >= modFrame.txLen - 1)
			{
				UART2_TIEN = FALSE;
				UART2_TCIEN = TRUE;
			}
		}
		else
		{
			startRX();
		}
	}
	if (UART2_GetITStatus(UART2_IT_TC) == SET)
	{
		stopUART();
		
		//if (modFrame.txCursor >= (modFrame.txLen - 1))
		//{
			modFrame.txOK = TRUE;

			modFrame.rxOK = FALSE;
			modFrame.rxCursor = 0;
			modFrame.rxLen = 0;
			modFrame.rxBufOver = FALSE;
			modFrame.rxOver = FALSE;

			

			setFrameCheck(MOD_TIMER_STOP);
			setTimeoutCheck(MOD_TIMER_START);

			modFrame.modState = Mod_State_WaitForReply;
			modFrame.modEvent = Mod_Event_No;	//reset Event
			startRX();


		//} else {
		//	while(1);
		//}
 
	}
}
Esempio n. 4
0
//Method to send strings via UART
void UART_SendStr(const char *s)
{
	//Set Max485 in Transmitter mode
	GPIO_WriteHigh(GPIOA, GPIO_PIN_3);
	while(*s)
	{
	UART2_SendData8((uint8_t)(*s));
	while ((UART2->SR & UART2_SR_TXE ) != UART2_SR_TXE );
	s++;
	}
	//Set Max485 in Receiver mode
	GPIO_WriteLow(GPIOA, GPIO_PIN_3);
}