cubemx 串口配置 接收错误 请高手大侠指点迷津
我用Cubemx 配置STM32F0xx芯片的串口接收接收及发送,发送功能正常,但接收功能不正常,具体如下:我用电脑串口助手发送 0x00, 结果接收到的是0x80
我用电脑串口助手发送 0x01, 结果接收到的是0xE0
但我查过代码,并未发现错误,我也直接读过RDR寄存器的值,其实和接收到的值相同。
请各位高手大侠指点迷津
应该是波特率不对或者时钟不准 mark0668 发表于 2017-8-16 11:22
应该是波特率不对或者时钟不准
我设置的波特率是9600 ,8N2
发送是对的,所以我认为波特率是对的,不知道我这样理解对不对? 冰点柔情 发表于 2017-8-16 11:34
我设置的波特率是9600 ,8N2
发送是对的,所以我认为波特率是对的,不知道我这样理解对不对? ...
2个停止位? 2个停止位? gujiamao 发表于 2017-8-16 11:35
2个停止位?
是的,有问题吗 leiyijing2003 发表于 2017-8-16 11:36
2个停止位?
是的,这样会有问题吗? 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);
} 冰点柔情 发表于 2017-8-16 11:42
串口初始化代码如下:
static void MX_USART2_UART_Init(void)
{
可以改成一个停止位 试试 gujiamao 发表于 2017-8-16 11:52
可以改成一个停止位 试试
我试过了,结果还是一样
页:
[1]
2