一、队伍介绍
参赛队名:英勇不秃 队伍编号:CICC2990
本篇主要介绍蜂鸟E203 SoC的UART中断
二、相关函数介绍
UART中断的方式有主要三种:接收数据校验位错误引起的中断,FIFO中数据与阈值比较后产生的中断,和TX_FIFO为空时产生的中断。
UART模块里的控制寄存器有很多,有以下的一些寄存器。
而与控制UART中断相关的寄存器主要是IER寄存器(3 bits),和FCR寄存器(只写)其中:
IER[2]:使能接收数据校验位错误引起的中断
IER[1]:使能FIFO中数据与阈值比较后产生的中断
IER[0]:使能TX_FIFO为空时产生的中断
而FCR寄存器则是下面会说到的中断阈值的设置需要用到的。
在设计的时候,我们一般都会希望能够使用键盘对系统进行控制,于是就需要用到UART中断,即使能FIFO中数据与阈值比较后产生的中断,这时就会设计到UART中断阈值的设置。在E203 SoC的代码里我们可以看到,中断阈值主要是由UART模块里面的trigger_level_n(2 bits)寄存器控制的。不同的值代表着不同的阈值深度。
了解了相关的寄存器后,我们可以进一步地查看相关的函数,以便我们设计。在蜂鸟软件开发平台中,hbirdv2_uart.c文件包含着UART模块的相关控制函数。使用下图的两个函数即可对相关寄存器进行设置。
三、总结
这篇贴子简单地分享了E203 SoC UART中断的使用方法,本人能力有限,难免可能会出现疏漏,但还是希望能够帮助到大家,同时也希望大家指正,祝各参赛队比赛顺利!