在中断程序内 "原则上" 不可以用 Serial.print
因为会来不及 !
你可以先改 Serial.begin(115200); 看看
如果仍无法持续打印, 那就是来不及!
如果没问题, 那就用吧 !
说明:
当你波特率 9600, 每秒钟只能印出大约 888 char (理论 960 char)
所以 1ms 只能印 不到 1 char
如果你的中段每 5 ms 来一次,
你在中断内用 Serial.print( )印 3 char 大概没问题
如果把波特率提高 Serial.begin(115200);
则每 1ms 可印大约 9 char
这时如果你的 Interrupt 每 1ms 来一次,
用 Serial.print 应该还可以 !
由于 Serial.print 要靠另一个中断来帮忙把字符串真的送出,
当中断被禁止(在 中断程序内, 中断自断禁止!)
但当 Interrupt 来太快,
因为 Serial.print 来不及打印就会回不来
(就是不会执行 Serial.print( ) 下面那行啦)
|