问题描述 :通过电脑串口工具经过485发送到单片机串口验证问题
现象
1.通过串口助手发送单个字节单片机可以正确接收正确返回
2.单片机发送字符串电脑串口助手可以正确接收数据
3.电脑串口助手发送字符串单片机接收不到正确数据
void UART_Initializes(void)
{
CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1,ENABLE);
UART1_Init((uint32_t)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
UART1_Cmd(ENABLE);
UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);
//UART1_ITConfig(UART1_IT_IDLE, ENABLE);
GPIO_Init(RS485_RE1_GPIO_PORT, (GPIO_Pin_TypeDef)RS485_RE1_GPIO_PIN, GPIO_MODE_OUT_PP_LOW_FAST);
RS485_RE1_RE;
QueueInitial1();
enableInterrupts();
}
INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)
{
if(UART1_GetITStatus(UART1_IT_RXNE )!= RESET)
{
EnQueue1(UART1_ReceiveData8());
}
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
}
void EnQueue1(INT8U b)
{
r_buf[end++]=b;
if(end>=MAX_BUF_SIZE)
{
end=0;
}
count++;
sem++;//OSSemPost(sem);
}
|