关于STM32H743的两串口调试纪录笔记

1、使用了串口3和串口4,串口3为USART,而串口4为UART,在进行初始化时,容易踩坑,

一开始将串口4的GPIO_Initure.Alternate配置成GPIO_AF8_UART4;    //复用为USART4,

希望大家写的时候也能注意,GPIO_AF8_UART4的管脚映射的并不是PA11,PA12两个端口

串口3:

    GPIO_Initure.Pin=GPIO_PIN_10|GPIO_PIN_11; //PC10,11
    GPIO_Initure.Mode=GPIO_MODE_AF_PP;        //复用推挽输出
    GPIO_Initure.Pull=GPIO_PULLUP;            //上拉
    GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;//高速
    GPIO_Initure.Alternate=GPIO_AF7_USART3;    //复用为USART3
    HAL_GPIO_Init(GPIOC,&GPIO_Initure);           //初始化PC10,11

串口4:

    GPIO_Initure.Pin=GPIO_PIN_11|GPIO_PIN_12; //PA11,12
    GPIO_Initure.Mode=GPIO_MODE_AF_PP;        //复用推挽输出
    GPIO_Initure.Pull=GPIO_PULLUP;            //上拉
    GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;//高速
    GPIO_Initure.Alternate=GPIO_AF6_UART4;    //复用为USART4
    HAL_GPIO_Init(GPIOA,&GPIO_Initure);           //初始化PA11,12

2.在调用串口接收中断时,注意区分USART和UART的区别,要不然,串口中断不起作用,希望大家注意这个坑。

串口3为void USART3_IRQHandler(void),

串口4为void UART4_IRQHandler(void)

3、还有就是中断优先级的问题,我的串口3是    

HAL_NVIC_SetPriority(USART3_IRQn,3,3);                    //抢占优先级3,子优先级3

串口4是    HAL_NVIC_SetPriority(UART4_IRQn,1,0);                    //抢占优先级4,子优先级4

希望大家在使用STM32H7两串口时,可以有所帮助。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值