hello ,it's about the problem about UART ISR
I used to compile environment is KDS3.0
Using a KSDK1.2 and MQX4.2,and my board is frdmk64f
I want to rec data form uart with ISR
but when I install the uart0 isr,
the Interrupt handler is constantly triggered, whatever I have to send or receive data from UART0
I don't know what's the problem
Is it because UART0 is the default input port?
In addition, I want to know why the code “printf("\ncounter = %d\n", g_isr_data.COUNTER);”
could output data to uart0
void new_isr(void *user_isr_ptr)
{
MY_ISR_STRUCT_PTR isr_ptr;
isr_ptr = (MY_ISR_STRUCT_PTR)user_isr_ptr;
isr_ptr->COUNTER++;
/* It is common to chain interrupts */
/* isr_ptr->OLD_ISR(isr_ptr->OLD_ISR_DATA); */
}
main_task(){
INT_SYS_EnableIRQ(SW_IRQ);
/** Demonstration of mqx interrupt installation. Works with vector table placed in RW as well as RO memory **/
g_isr_data.COUNTER = 0;
g_isr_data.OLD_ISR_DATA = _int_get_isr_data(SW_IRQ);
g_isr_data.OLD_ISR = _int_get_isr(SW_IRQ);
/* Install MQX isr routine. This function does not change vector table */
old_isr = _int_install_isr(SW_IRQ, new_isr, &g_isr_data);
}
Hi wang yufei,
please what do you use for MCU?
Best Regards,
Iva
what did you mean?
I want to receive data form uart by interrupt
but,when I install a uart0 interrupt about like "_int_install_isr(SW_IRQ, new_isr, &g_isr_data);"
the interrupt funtion "new_isr()"was constantly triggered, whatever I havn't send or receive data from UART0
Hi wang,
please take a look at these documents :
How To: Using Interrupt Handlers in MQX with KSDK
or Interrupt handling with PE
Interrupt handling with KSDK and Kinetis Design Studio
I hope this helps.
Best Regards,
Iva
I saw the demo and found that it need to clear the interrupt flag bit in GPIO interrupt program with "GPIO_DRV_ClearPinIntFlag (kGpioSW2);"
So did the UART interrupt program also need to clear the interrupt flag ?
however I did not found the clear interrupt flag programe for uart in the API or the header files?
could you help me?