This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我设置 PE3口为外部中断,当该口接受到一个下降沿的时候产生中断进入中断处理子程序
然后不是要把中断处理程序的函数名,添加到相应的中断向量表中么(在startup_ccs.c中)
我查了向量表
IntDefaultHandler, // GPIO Port P1
IntDefaultHandler, // GPIO Port P2
IntDefaultHandler, // GPIO Port P3
IntDefaultHandler, // GPIO Port P4
IntDefaultHandler, // GPIO Port P5
IntDefaultHandler, // GPIO Port P6
IntDefaultHandler, // GPIO Port A
IntDefaultHandler, // GPIO Port B
IntDefaultHandler, // GPIO Port C
IntDefaultHandler, // GPIO Port D
向量表中只有 P后面加个字母 和 P后面加个数字。。。。但是我给的中断是PE3口阿,,既有字母也有数字。。。。这该怎么设置向量表么
求助!
PE3出发的也是PORTE的中断,然后进入中断后读取:
ulIntSta = GPIOIntStatus(GPIO_PORTE_BASE, false);
判断ulIntSta 的值。如果是PE3,则ulIntSta 会等于GPIO_PIN_3
请问ulIntSta = GPIOIntStatus(GPIO_PORTE_BASE, false);
如果改成ulIntSta = GPIOIntStatus(GPIO_PORTE_BASE, true); 的话有什么区别呢
不懂这里的 false 和 true 各代表什么含义。。。。
我看了datasheet里的描述 如下
“被设置成True,则返回屏蔽的中断状态;否则,返回原始的中断状态”。。。这是什么意思阿
看一下库函数吧:
//*****************************************************************************
//
//! Gets interrupt status for the specified GPIO port.
//!
//! \param ui32Port is the base address of the GPIO port.
//! \param bMasked specifies whether masked or raw interrupt status is
//! returned.
//!
//! If \e bMasked is set as \b true, then the masked interrupt status is
//! returned; otherwise, the raw interrupt status is returned.
//!
//! \return Returns the current interrupt status for the specified GPIO module.
//! The value returned is the logical OR of the \b GPIO_INT_* values that are
//! currently active.
//
//*****************************************************************************
uint32_t
GPIOIntStatus(uint32_t ui32Port, bool bMasked)
{
//
// Check the arguments.
//
ASSERT(_GPIOBaseValid(ui32Port));
//
// Return the interrupt status.
//
if(bMasked)
{
return(HWREG(ui32Port + GPIO_O_MIS));
}
else
{
return(HWREG(ui32Port + GPIO_O_RIS));
}
}