下面是我配置的NUC120 UART1的初始化和中断函数,但是我用怎么都进步了中断里去,求大神指教哈
/****************************************************************************************/
/******************UART1初始化***********************************************************/
/****************************************************************************************/
void InitUART1(void)
{
STR_UART_T sParam;
DrvSYS_UnlockProtectedReg ();//解锁保护寄存器
DrvSYS_SetIPClock (E_SYS_UART1_CLK , 1);//使能UART1时钟
DrvSYS_SelectIPClockSourART1_RST); /* Reset UART0 */
DrvSYS_SetClockDividce (E_SYS_UART_CLKSRC , 0X00); //选择UART的时钟源为外部
DrvSYS_ResetIP (E_SYS_Uer (E_SYS_UART_DIV, 0x01);
DrvSYS_LockProtectedReg ();//锁保护寄存器
sParam.u32BaudRate = 9600;//设置串口的波特率
sParam.u8cParity = DRVUART_PARITY_NONE; //设置奇偶校验
sParam.u8cDataBits = DRVUART_DATABITS_8;//设置数据位数
sParam.u8cStopBits = DRVUART_STOPBITS_1; //设置停止位
sParam.u8cRxTriggerLevel = DRVUART_FIFO_1BYTES; //设置接收缓冲器中断触发等级
DrvUART_Open (UART_PORT1, &sParam); //设置UART0的基本参数
DrvUART_EnableInt(UART_PORT1, DRVUART_RDAINT ,UART_INT_HANDLE); //使能UART0中断
}
/****************************************************************************************/
/******************UART0中断处理函数***********************************************************/
/****************************************************************************************/
void UART_INT_HANDLE(uint32_t userData)
{
PWMA->CMR3 = 0X10;
DrvGPIO_SetBit (E_GPC, 14);
if(DrvUART_GetIntStatus (UART_PORT0, DRVUART_RDAINT_FLAG))//判断指定的中断是否发生
{
DrvSYS_Delay (10000);
DrvUART_Read(UART_PORT0,u8_Buffer_Int_UART1_Rev,1);//从接收缓冲寄存器读取一个字节到指定的缓冲区
DrvSYS_Delay (100000);
DrvGPIO_SetBit (E_GPB, 6);
DrvUART_Write(UART_PORT0,u8_Buffer_Int_UART1_Rev,1);
DrvGPIO_ClrBit (E_GPB, 6);//485驱动引脚当前为接收状态
}
}
麻烦看看这个配置对不
|