Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 5 months ago.
How can clear th irq ----- Serial::TxIrq
Hello one. I have a demo code with Realese 149 of Mbed library.
affter call the line: pc.attach(&o_uart_send_,Serial::TxIrq); then cpu run the funtion all the time: o_uart_send_();
the led2 on and off all the time. How can clear th irq of TxIrq?
The code is flowed.
---------------------
#include "mbed.h"
DigitalOut led1(PC_13);
DigitalOut led2(PB_7);
Serial pc(SERIAL_TX, SERIAL_RX);
int time1;
void o_uart_send_()
{
pc.writeable();
if(time1++>10000){
time1=0;
led1=!led1;
}
}
void o_uart_recv()
{
if(pc.readable()){
pc.putc(pc.getc());
}
}
void o_uart_init()
{
pc.baud(115200);
pc.attach(&o_uart_recv,Serial::RxIrq);
pc.attach(&o_uart_send_,Serial::TxIrq);
}
int main() {
o_uart_init();
while(1) {
led2 = 1; // LED is ON
wait(0.2); // 200 ms
led2 = 0; // LED is OFF
wait(1.0); // 1 sec
}
}
1 Answer
8 years, 5 months ago.
You can pass NULL into attach to remove a previously attached IRQ handler. See: https://github.com/ARMmbed/mbed-os/blob/master/drivers/SerialBase.cpp#L79
Assigned to 8 years, 5 months ago.
This means that the question has been accepted and is being worked on.
Rather than posting images or code with no formatting use
posted by Andy A 24 Aug 2017Thanks
posted by miao jb 24 Aug 2017