求指教:STM32 无论配置奇偶校验,示波器显示校验位都为高,怎么改正呢?程序如下:
时间:10-02
整理:3721RD
点击:
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); //开启接收中断部分
}
感觉上没什么错误啊,为什么示波器波形显示校验位总是高呢,无论配置奇、偶、无校验?求指教!怎么改才能搞好啊?
{
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); //开启接收中断部分
}
感觉上没什么错误啊,为什么示波器波形显示校验位总是高呢,无论配置奇、偶、无校验?求指教!怎么改才能搞好啊?
|USART_Mode_Tx);//接收有效
这一句是你注释错了,还是配置错了。
通讯能不能通上?用串口助手先试试,
