Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

ボイドIRQ10_Handler(ボイド)

{ uint8_t ReceiveByte;

受信バイト = IMC_UART0_Get_Byte();

IMC_UART0_Transmit_Byte(受信バイト);}

这是例程中串口接收中断的函数,但是串口的中断事件有很多,请问如何在串口的初始化函数中指定响应Receiver frame finished中断事件。

0 件の賞賛
1 解決策
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

想固定帧触发接收中断,需要如下配置:

1.分配正确的FIFO 指针DPTR,比如当前未使用其他FIFO,配置接收指针0;

2.设置LIMIT,中断触发数据阈值,比如每帧8个bytes,LIMIT设置为7;

3.SRBTEN = 1;接收buffer触发事件を有効にする;

4.サイズ= 3、FIFO数据长度;

5.RNM = 0、充填レベルモード

6.ロフ= 1;

SRBIEN = 1, enable中断。

例程中,修改API如下:

write_USIC_CH_RBCTR(UART1, ((0UL << USIC_CH_RBCTR_DPTR_Pos) & USIC_CH_RBCTR_DPTR_Msk)|
                                                                  ((7UL << USIC_CH_RBCTR_LIMIT_Pos) & USIC_CH_RBCTR_LIMIT_Msk)|
                                                                  ((0UL << USIC_CH_RBCTR_SRBTM_Pos) & USIC_CH_RBCTR_SRBTM_Msk)|
                                                                  ((0UL << USIC_CH_RBCTR_SRBTEN_Pos) & USIC_CH_RBCTR_SRBTEN_Msk)|
                                                                  ((3UL << USIC_CH_RBCTR_SRBINP_Pos) & USIC_CH_RBCTR_SRBINP_Msk)|
                                                                  ((3UL << USIC_CH_RBCTR_SIZE_Pos) & USIC_CH_RBCTR_SIZE_Msk)|
                                                                  ((0UL << USIC_CH_RBCTR_RNM_Pos) & USIC_CH_RBCTR_RNM_Msk)|
                                                                  ((1UL << USIC_CH_RBCTR_LOF_Pos) & USIC_CH_RBCTR_LOF_Msk)|
                                                                  ((1UL << USIC_CH_RBCTR_SRBIEN_Pos) & USIC_CH_RBCTR_SRBIEN_Msk));

元の投稿で解決策を見る

0 件の賞賛
1 返信
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

想固定帧触发接收中断,需要如下配置:

1.分配正确的FIFO 指针DPTR,比如当前未使用其他FIFO,配置接收指针0;

2.设置LIMIT,中断触发数据阈值,比如每帧8个bytes,LIMIT设置为7;

3.SRBTEN = 1;接收buffer触发事件を有効にする;

4.サイズ= 3、FIFO数据长度;

5.RNM = 0、充填レベルモード

6.ロフ= 1;

SRBIEN = 1, enable中断。

例程中,修改API如下:

write_USIC_CH_RBCTR(UART1, ((0UL << USIC_CH_RBCTR_DPTR_Pos) & USIC_CH_RBCTR_DPTR_Msk)|
                                                                  ((7UL << USIC_CH_RBCTR_LIMIT_Pos) & USIC_CH_RBCTR_LIMIT_Msk)|
                                                                  ((0UL << USIC_CH_RBCTR_SRBTM_Pos) & USIC_CH_RBCTR_SRBTM_Msk)|
                                                                  ((0UL << USIC_CH_RBCTR_SRBTEN_Pos) & USIC_CH_RBCTR_SRBTEN_Msk)|
                                                                  ((3UL << USIC_CH_RBCTR_SRBINP_Pos) & USIC_CH_RBCTR_SRBINP_Msk)|
                                                                  ((3UL << USIC_CH_RBCTR_SIZE_Pos) & USIC_CH_RBCTR_SIZE_Msk)|
                                                                  ((0UL << USIC_CH_RBCTR_RNM_Pos) & USIC_CH_RBCTR_RNM_Msk)|
                                                                  ((1UL << USIC_CH_RBCTR_LOF_Pos) & USIC_CH_RBCTR_LOF_Msk)|
                                                                  ((1UL << USIC_CH_RBCTR_SRBIEN_Pos) & USIC_CH_RBCTR_SRBIEN_Msk));

0 件の賞賛