打印
[技术问答]

uart中断需要启动NVIC IRQn问题

[复制链接]
3972|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vi, vi, UART, ic, BLE, TI
各位前辈 安安

在NUC230_240_Series_BSP_CMSIS_V3.01.004\SampleCode\StdDriver\UART_TxRx_Function官方范例中
此范例最后只启动uart的中断,没启动NVIC的IRQ 中断请求,中断功能正常,想问看看各位大大为何可以如此写?谢谢大家!


    /* Enable Interrupt and install the call back function */
    UART_EnableInt(UART0, (UART_IER_RDA_IEN_Msk | UART_IER_THRE_IEN_Msk | UART_IER_TOUT_IEN_Msk));
    while(g_bWait);


    /* Enable Interrupt and install the call back function */
    UART_EnableInt(UART0, (UART_IER_RDA_IEN_Msk | UART_IER_THRE_IEN_Msk | UART_IER_TOUT_IEN_Msk));
    NVIC_EnableIRQ(UART02_IRQn);
    while(g_bWait);

使用特权

评论回复
沙发
呐咯密密| | 2021-7-27 15:05 | 只看该作者
UART_EnableInt(UART0, (UART_IER_RDA_IEN_Msk | UART_IER_THRE_IEN_Msk | UART_IER_TOUT_IEN_Msk));
这句话就申明了呀,开启中断就这两步,新塘的所有流程调用库函数都会非常简单

使用特权

评论回复
板凳
skyred| | 2021-8-10 17:57 | 只看该作者
函数内部处理,有时候,需要了解下

使用特权

评论回复
地板
幸福小强| | 2021-8-10 22:10 | 只看该作者
你定位那个函数,看看里面怎么做的。

使用特权

评论回复
5
幸福小强| | 2021-8-10 22:20 | 只看该作者
   /* Enable UART wake-up and receive data available interrupt */
    NVIC_EnableIRQ(UART1_IRQn);
    UART_EnableInt(UART1, UART_INTEN_WKIEN_Msk | UART_INTEN_RDAIEN_Msk | UART_INTEN_RXTOIEN_Msk);

在471的例子里看到了。

使用特权

评论回复
6
幸福小强| | 2021-8-10 22:22 | 只看该作者
你看的那个例子是普通的,里面没有中断处理函数,只是用了那个标志位而已。

使用特权

评论回复
7
幸福小强| | 2021-8-10 22:24 | 只看该作者
下载了你用的那个,是在那个中断使能里面已经有了调用NVIC
void UART_EnableInt(UART_T*  uart, uint32_t u32InterruptFlag)
{

    /* Enable UART specified interrupt */
    UART_ENABLE_INT(uart, u32InterruptFlag);

    /* Enable NVIC UART IRQ */
    if(uart == UART0)
        NVIC_EnableIRQ(UART02_IRQn);
    else if(uart == UART1)
        NVIC_EnableIRQ(UART1_IRQn);
    else
        NVIC_EnableIRQ(UART02_IRQn);

}

使用特权

评论回复
8
幸福小强| | 2021-8-10 22:29 | 只看该作者

对比了一下,不同系列的BSP库函数还内容不一样。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

658

主题

2751

帖子

0

粉丝