[MSP-EXP430F5529LP] 串口终端函数求助

[复制链接]

1

主题

1

帖子

56

积分

一粒轻沙

Rank: 1

积分
56
楼主
查看: 2675回复: 3 发表于 2022-10-24 22:54:56   只看该作者
本帖最后由 ljz13 于 2022-11-22 21:30 编辑

__even_in_range(unsigned int val, unsigned int range);是啥意思啊?不太明白#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR (void)
{
    uint8_t receivedData = 0;
    switch (__even_in_range(UCA0IV,4))
    {
        //Vector 2 - RXIFG
        case 2:
            receivedData = USCI_A_UART_receiveData(USCI_A0_BASE);
            OLED_Clear();
            OLED_ShowNum(5,1,receivedData,5,16);
            USCI_A_UART_transmitData(USCI_A0_BASE,receivedData);
            break;
        default:
            break;
    }
}


1

主题

10

帖子

305

积分

二氧化硅

Rank: 2

积分
305
沙发
发表于 2022-10-25 19:33:18   只看该作者
函数原型你总得贴出来吧,只给个函数名和参数,怎么知道你这个函数是干啥的。。

1

主题

1

帖子

56

积分

一粒轻沙

Rank: 1

积分
56
板凳
发表于 2022-11-22 21:30:23   只看该作者
jiongsheng 发表于 2022-10-25 19:33
函数原型你总得贴出来吧,只给个函数名和参数,怎么知道你这个函数是干啥的。。 ...

#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR (void)
{
    uint8_t receivedData = 0;
    switch (__even_in_range(UCA0IV,4))
    {
        //Vector 2 - RXIFG
        case 2:
            receivedData = USCI_A_UART_receiveData(USCI_A0_BASE);
            OLED_Clear();
            OLED_ShowNum(5,1,receivedData,5,16);
            USCI_A_UART_transmitData(USCI_A0_BASE,receivedData);
            break;
        default:
            break;
    }
}

0

主题

1

帖子

73

积分

一粒轻沙

Rank: 1

积分
73
4#
发表于 2023-7-10 16:07:22   只看该作者
ljz13 发表于 2022-11-22 21:30
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR (void)
{

它就是一个简单的判断中断号是否在范围内,val指的中断向量可以对应到几个值就是range范围,这几个值分别对应几种中断的触发情况。比如这个USA0IV对应有两个中断,对应可以是几个值0,2,4(0就是指没有发生中断),这个__even_in_range就是先把中断向量转化成数字,再判断是否在一个适当的范围内,在的话进入对应中断号,不在的话就是fefault
快速回复 返回顶部 返回列表