H743芯片, USART1、2、3、6,UART4、5、7、8,原子的HAL库、寄存器均可以通信,唯独LPUART1串口HAL库使用没有问题,寄存器工程配置后,通讯失败。是不是还有其他寄存器没有配置
可有遇到过此问题的朋友?非常感谢。(工程以原子寄存器例程先测试的USART1,之后修改为LPUART1例程)
void uart_init(u32 pclk2,u32 bound)
{
u32 temp;
temp=(pclk2*1000000+bound/2)/bound; //得到USARTDIV@OVER8=0,采用四舍五入计算
RCC->AHB4ENR|=1<<0; //使能PORTA口时钟
RCC->APB4ENR|=1<<3; //使能串口LPUART1时钟
GPIO_Set(GPIOA,PIN9|PIN10,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_MID,GPIO_PUPD_PU);//PA9,PA10,复用功能,上拉输出
GPIO_AF_Set(GPIOA,9,3); //PA9,AF3
GPIO_AF_Set(GPIOA,10,3);//PA10,AF3
//波特率设置
LPUART1->BRR=temp; //波特率设置@OVER8=0
LPUART1->CR1=0; //清零CR1寄存器
LPUART1->CR1|=0<<28; //设置M1=0
LPUART1->CR1|=0<<12; //设置M0=0&M1=0,选择8位字长
LPUART1->CR1|=0<<15; //设置OVER8=0,16倍过采样
LPUART1->CR1|=1<<3; //串口发送使能
#if EN_LPUART1_RX //如果使能了接收
//使能接收中断
LPUART1->CR1|=1<<2; //串口接收使能
LPUART1->CR1|=1<<5; //接收缓冲区非空中断使能
MY_NVIC_Init(3,3,LPUART1_IRQn,2);//组2,最低优先级
#endif
LPUART1->CR1|=1<<0; //串口使能
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>