【串口UART】UART0中断接收问题
如题,本人使用串口0调试其接收中断问题,将中断服务函数写为转发接收到的数据,现在遇到问题是接收8位收据没问题,接收更多的收据调试助手显示接收到的数据不对,下面是配置代码void UART0_IRQHandler(void)
{
uint8_t RecBuf;
//接收中断处理
// if((ENABLE == LL_UART_IsEnbaledIT_ReceiveBuffFull(UART0))
// &&(SET == LL_UART_IsActiveFlag_RXBF(UART0)))
if(LL_UART_IsActiveFlag_RXBF(UART0)!=RESET)//接收缓存满中断标志
{
//Uart0_SendStr("进中断\r\n");
RecBuf=LL_UART_ReceiveData(UART0);//接收中断标志可通过读取rxreg寄存器清除
LL_UART_TransmitData(UART0, RecBuf);
}
}
void Uart0_SendStr(char*SendBuf)//串口1打印数据
{
while(*SendBuf)
{
while((UART0->ISR&0X02)==0); //等待发送完成 SR状态寄存器 发送完成置1
UART0->TXBUF = (uint8_t) *SendBuf; //数据寄存器DR
SendBuf++;
}
}
void Uart0_Init(void)
{
LL_GPIO_InitTypeDef GPIO_InitStruct;
LL_UART_InitTypeDef UART_InitStruct;
//PA13:UART0-RX PA14:UART0-TX
GPIO_InitStruct.Pin = LL_GPIO_PIN_13|LL_GPIO_PIN_14;
GPIO_InitStruct.Mode = LL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = DISABLE;
GPIO_InitStruct.RemapPin = DISABLE;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
UART_InitStruct.ClockSrc = LL_RCC_UART_OPERATION_CLOCK_SOURCE_APBCLK1;
/*NVIC中断配置*/
NVIC_DisableIRQ(UART0_IRQn);
NVIC_SetPriority(UART0_IRQn,2);//中断优先级配置
NVIC_EnableIRQ(UART0_IRQn);
UART_InitStruct.BaudRate = 115200; //波特率
UART_InitStruct.DataWidth = LL_UART_DATAWIDTH_8B; //数据位数
UART_InitStruct.StopBits = LL_UART_STOPBITS_1; //停止位
UART_InitStruct.Parity = LL_UART_PARITY_EVEN; //奇偶校验
UART_InitStruct.TransferDirection = LL_UART_DIRECTION_TX_RX; //接收-发送使能
UART_InitStruct.InfraredModulation = DISABLE;
LL_UART_Init(UART0, &UART_InitStruct);
LL_UART_ClearFlag_RXBF(UART0);
LL_UART_EnableIT_ReceiveBuffFull(UART0);
// LL_UART_EnableIT_ShiftBuffEmpty(UART0);
// WRITE_REG(UART0->IER, UART_IER_RXBFIE);
}
串口0现在本身用printf函数,打印字符串等任何数据都没问题,但是用中断转发接收到的数据存在问题
这是串口调试助手收到的数据
收←◆A
发→◇A□
收←◆A
发→◇ABCD123□
收←◆A?1
发→◇1□
收←◆1
发→◇123□
收←◆1
发→◇你好□
收←◆?
请问我哪里配置错了吗?
pc 端的 奇偶校验 设的对不对,还有pc端的串口与串口线是不是可靠。 你用的是老版本的ll库,如果有当时的例程的话,直接用例程。试。不加改动是不是正确 顾博文 发表于 2021-8-3 16:05
pc 端的 奇偶校验 设的对不对,还有pc端的串口与串口线是不是可靠。 你用的是老版本的ll库,如果有当时的例 ...
问题解决了,是奇偶校验的问题,我太蠢了哈哈,感谢感谢:handshake
页:
[1]