串口中断!!!转载
int pin = 13;
int state = LOW;
void setup(){
pinMode(pin, OUTPUT);
attachInterrupt(0, blink, RISING);
Serial.begin(9600);
}
void loop(){
digitalWrite(pin, state);
}
void blink()
{
state = !state;
Serial.println("button clicked");
}
转载http://my.oschina.net/tangkikodo/blog/142995 什么意思哦?串口中断??? 本帖最后由 Super169 于 2014-9-24 00:27 编辑
從程式看, 是想當 Int.0 相關的 pin 出現 RISING 時, 就把 state 相反了, 同時顯示字句.
之後 loop 會改變 pin 13, 即燈會由開變關, 關變開.
不過, 在 interrupt 中執行 Serial.print, 好像不太好, interrupt 程序應該是盡量簡單為主.
ninjiafan 发表于 2014-9-23 21:17 static/image/common/back.gif
什么意思哦?串口中断???
对,,这样能不能模拟串口中断 似水流年 发表于 2014-9-27 09:19 static/image/common/back.gif
对,,这样能不能模拟串口中断
我认为你的思路反了。
试试这样:
//....
int Int_0 = 2; //Most Arduino boards have two external interrupts: numbers 0 (on digital pin 2)
// and 1 (on digital pin 3).
void setup()
{
//...
attachInterrupt(0,blink,rising);
}
void loop()
{
if(Serial.available()>0)
{
serial.print();
digital.write(Int_0 ,low);
digital.write(Int_0 ,high); //在串口操作中触发、并产生外部中断。
}
此法的意图就是在使能外部中断0之后,在主程序中通过串口接收、用软件操作Int_0 管脚,达到外部中断条件后,用外部中断闪烁LED来显示串口动作。近似产生串口中断。 sam 发表于 2014-10-31 23:55 static/image/common/back.gif
我认为你的思路反了。
试试这样:
这样主程序一直在被占用,干不了别的,不能叫中断,叫轮询 sam 发表于 2014-10-31 23:55 static/image/common/back.gif
我认为你的思路反了。
试试这样:
目的不是检测中断,而是利用外部中断实现串口中断
那好吧,你好像自己找到答案了:lol 这还是外部中断 不是串口中断
页:
[1]