求指教:STM32 无论配置奇偶校验,示波器显示校验位都为高,怎么改正呢?程序如下:

2019-07-15 15:43发布

                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);                //开启接收中断部分
            }


感觉上没什么错误啊,为什么示波器波形显示校验位总是高呢,无论配置奇、偶、无校验??求指教!!!怎么改才能搞好啊?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。