完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用了串口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两串口时,可以有所帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
3320 浏览 9 评论
3000 浏览 16 评论
3496 浏览 1 评论
9069 浏览 16 评论
4089 浏览 18 评论
1190浏览 3评论
612浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
603浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2339浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1899浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 12:46 , Processed in 1.256918 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号