南平好少年 2022-07-07 17:13 采纳率: 0%
浏览 51
已结题

FER32串口中断初始化一直没成功,想说请教一下论坛的各位

EFR32 串口中断初始化相关问题;
大家好,我最近使用silicon lab的蓝牙芯片EFR32BG22的时候想自己初始化一下串口接收中断,但是我按照例程上逻辑编写,串口一直未使能,不知道出来什么问题,如下是我初始化的代码;

void USART1_Init(void)
{
USART_InitAsync_TypeDef *init;
USART_TypeDef *usart=SL_IOSTREAM_USART_VCOM_PERIPHERAL;
CMU_ClockEnable(cmuClock_GPIO, true);
// Configure TX and RX GPIOs
GPIO_PinModeSet(SL_IOSTREAM_USART_VCOM_TX_PORT,SL_IOSTREAM_USART_VCOM_TX_PIN, gpioModePushPull, 1);
GPIO_PinModeSet(SL_IOSTREAM_USART_VCOM_RX_PORT,SL_IOSTREAM_USART_VCOM_RX_PIN, gpioModeInputPull, 1);
CMU_ClockEnable(cmuClock_USART1, true);
// Configure USART for basic async operation
init->enable = usartDisable;
USART_InitAsync(usart, init);
// Enable pins at correct USART/USART location
GPIO->USARTROUTE[SL_IOSTREAM_USART_VCOM_PERIPHERAL_NO].ROUTEEN = GPIO_USART_ROUTEEN_TXPEN | GPIO_USART_ROUTEEN_RXPEN;
GPIO->USARTROUTE[SL_IOSTREAM_USART_VCOM_PERIPHERAL_NO].TXROUTE = (SL_IOSTREAM_USART_VCOM_TX_PORT << _GPIO_USART_TXROUTE_PORT_SHIFT)
| (SL_IOSTREAM_USART_VCOM_TX_PIN << _GPIO_USART_TXROUTE_PIN_SHIFT);
GPIO->USARTROUTE[SL_IOSTREAM_USART_VCOM_PERIPHERAL_NO].RXROUTE = (SL_IOSTREAM_USART_VCOM_RX_PORT << _GPIO_USART_RXROUTE_PORT_SHIFT)
| (SL_IOSTREAM_USART_VCOM_RX_PIN << _GPIO_USART_RXROUTE_PIN_SHIFT);
// Enable RX interrupts
USART_IntEnable(usart, USART_IF_RXDATAV);
NVIC_EnableIRQ(USART1_TX_IRQn);
// Finally enable it
USART_Enable(usart, usartEnable);
}
感觉网上的很多例程上的底层定义和我使用的差很多,所以我参考的是例程写法,但是我使用例程直接修改的代码就一切正常,接收发送中断都能进入,不知道自己的和他差在哪,对比了很久。想说有没有大手子教一下,谢谢

  • 写回答

2条回答 默认 最新

  • 常驻客栈 2022-07-11 14:00
    关注

    GPIO引脚不初始化吗?

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月12日
  • 赞助了问题酬金10元 7月11日
  • 创建了问题 7月7日

悬赏问题

  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
  • ¥15 Windows 系统cmd后提示“加载用户设置时遇到错误”
  • ¥50 vue router 动态路由问题
  • ¥15 关于#.net#的问题:End Function
  • ¥15 无法import pycausal
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义