冰点柔情 发表于 2017-8-16 10:53:23

cubemx 串口配置 接收错误 请高手大侠指点迷津

我用Cubemx 配置STM32F0xx芯片的串口接收接收及发送,发送功能正常,但接收功能不正常,具体如下:
我用电脑串口助手发送 0x00, 结果接收到的是0x80
我用电脑串口助手发送 0x01, 结果接收到的是0xE0

但我查过代码,并未发现错误,我也直接读过RDR寄存器的值,其实和接收到的值相同。

请各位高手大侠指点迷津

mark0668 发表于 2017-8-16 11:22:25

应该是波特率不对或者时钟不准

冰点柔情 发表于 2017-8-16 11:34:38

mark0668 发表于 2017-8-16 11:22
应该是波特率不对或者时钟不准

我设置的波特率是9600 ,8N2

发送是对的,所以我认为波特率是对的,不知道我这样理解对不对?

gujiamao 发表于 2017-8-16 11:35:54

冰点柔情 发表于 2017-8-16 11:34
我设置的波特率是9600 ,8N2

发送是对的,所以我认为波特率是对的,不知道我这样理解对不对? ...

2个停止位?

leiyijing2003 发表于 2017-8-16 11:36:58

2个停止位?

冰点柔情 发表于 2017-8-16 11:39:00

gujiamao 发表于 2017-8-16 11:35
2个停止位?

是的,有问题吗

冰点柔情 发表于 2017-8-16 11:39:22

leiyijing2003 发表于 2017-8-16 11:36
2个停止位?

是的,这样会有问题吗?

冰点柔情 发表于 2017-8-16 11:42:09

gujiamao 发表于 2017-8-16 11:35
2个停止位?

串口初始化代码如下:
static void MX_USART2_UART_Init(void)
{

huart2.Instance = USART2;
huart2.Init.BaudRate = 9600;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_2;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_RXOVERRUNDISABLE_INIT|UART_ADVFEATURE_DMADISABLEONERROR_INIT;
huart2.AdvancedInit.OverrunDisable = UART_ADVFEATURE_OVERRUN_DISABLE;
huart2.AdvancedInit.DMADisableonRxError = UART_ADVFEATURE_DMA_DISABLEONRXERROR;
if (HAL_UART_Init(&huart2) != HAL_OK)
{
    _Error_Handler(__FILE__, __LINE__);
}
       
          //USART_ITConfig(USART2,USART_IT_TXE,ENABLE);               
    //USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);               
                //__HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE);
                //__HAL_UART_ENABLE(&huart2);
       
    //_Cmd(USART2,ENABLE);                                 
    //USART_ClearFlag(USART2,USART_FLAG_TC);                     
       
       

}

gujiamao 发表于 2017-8-16 11:52:30

冰点柔情 发表于 2017-8-16 11:42
串口初始化代码如下:
static void MX_USART2_UART_Init(void)
{


可以改成一个停止位 试试

冰点柔情 发表于 2017-8-16 13:36:26

gujiamao 发表于 2017-8-16 11:52
可以改成一个停止位 试试

我试过了,结果还是一样
页: [1] 2
查看完整版本: cubemx 串口配置 接收错误 请高手大侠指点迷津