if(type == UART_STA_SEND_INT)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_4);//D/r置1,输入有效,微处理器可以向RS-485总线发送数据字节
RS485_UART->CR1 = (USART_WordLength_9b//有校验位,用9位发送。
|USART_Parity_Even//偶校验
|USART_Mode_Tx);//接收有效
RS485_UART->CR2 = USART_StopBits_1;//停止位
RS485_UART->CR3 |= USART_HardwareFlowControl_None;//硬件流控
if(SysDefine.UplinkBps == BPS9600)
{RS485_UART->BRR = TXDPDC_BADU_9K6; }
else if(SysDefine.UplinkBps == BPS38400)
{RS485_UART->BRR = RXDPDC_BADU_38K4; }
else if(SysDefine.UplinkBps == BPS19200)
{RS485_UART->BRR = RXDPDC_BADU_19K2; }
else
{
RS485_UART->BRR = TXDPDC_BADU_9K6;
}
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA2,PA3,TX有效即可|GPIO_Pin_3
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStructure);
USART_ITConfig(RS485_UART, USART_IT_TC, ENABLE); //开启接收中断部分
}
感觉上没什么错误啊,为什么示波器波形显示校验位总是高呢,无论配置奇、偶、无校验??求指教!!!怎么改才能搞好啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这一句是你注释错了,还是配置错了。
通讯能不能通上?用串口助手先试试,
一周热门 更多>