初级会员

- 积分
- 84
- 金钱
- 84
- 注册时间
- 2015-9-18
- 在线时间
- 15 小时
|

楼主 |
发表于 2016-2-24 09:23:45
|
显示全部楼层
本帖最后由 稀客 于 2016-2-24 09:25 编辑
[mw_shl_code=c,true]void UartSetDisplay()
{
char str1[25] = "";
u8 str2[25];
FLASH_ReadByte(FlashUartSetAddr,ReadUartSetting,24);
switch (ReadUartSetting[8])
{
case 0x01:
strcat(str1," 1200");
break;
case 0x02:
strcat(str1," 2400");
break;
case 0x03:
strcat(str1," 4800");
break;
case 0x04:
strcat(str1," 9600");
break;
case 0x05:
strcat(str1," 19200");
break;
case 0x06:
strcat(str1," 38400");
break;
case 0x07:
strcat(str1," 57600");
break;
case 0x08:
strcat(str1," 115200");
break;
default:
break;
}
switch (ReadUartSetting[9])
{
case 0x00:
strcat(str1," N");
break;
case 0x01:
strcat(str1," E");
break;
case 0x02:
strcat(str1," O");
break;
default:
break;
}
strcat(str1," 8");
strcat(str1," 1");
memcpy(str2,str1,25);
UartCb.NeedToSendDataNum=25;
UartSend(str2);
}
void UartSend( u8 *buffer )
{
u8 i;
for(i=0;i<UartCb.NeedToSendDataNum;i++)
{
uartsendbuffer=buffer;
}
MAX485_Enable_TX;
UartCb.UartState = Sending;
Send_Data=uartsendbuffer[UartCb.HaveSendDataNum];
USART_SendData(USART3,Send_Data);
}
下面是发送中断
if(USART_GetITStatus(USART3,USART_IT_TC)!=RESET)
{
if(UartCb.UartState == Sending)
{
if (UartCb.HaveSendDataNum < UartCb.NeedToSendDataNum-1)
{
UartCb.HaveSendDataNum++;
Send_Data=uartsendbuffer[UartCb.HaveSendDataNum];
USART_SendData(USART3,Send_Data);
}
else
{
UartCb.HaveSendDataNum=0;
UartCb.UartState = Free;
MAX485_Enable_RX;
}
}
USART_ClearITPendingBit(USART3, USART_IT_TC);
}
[/mw_shl_code] |
|