查看: 1996|回复: 0

KL25Z使用MBed串口发送中断的问题

[复制链接]
  • TA的每日心情
    奋斗
    2019-12-1 10:07
  • 签到天数: 1617 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-6-11 13:14:23 | 显示全部楼层 |阅读模式
    分享到:
    在Mbed中,使用串口发送中断时,Freescale的MCU与其它MCU有些不同,串口发送中断不能总是开着,这样程序会不断进入中断服务程序,从而陷入死循环,不能正常运行。
    例如,这样的用法程序是无法执行的,LED也不会闪(但是这个程序在ST的MCU上是可以正常运行的):
    #include "mbed.h"DigitalOut myled(LED1);Serial uart(USBTX, USBRX);void TXD_isr(){    myled = !myled;}int main(){    uart.attach(&TXD_isr, Serial::TxIrq);    while(1) {        uart.putc('>');        wait(1.0);    }}正确的用法如下,串口每秒发送一个字节,同时LED也会闪一次:
    #include "mbed.h"DigitalOut myled(LED1);Serial uart(USBTX, USBRX);void TXD_isr(){    uart.attach(0, Serial::TxIrq);   // disable txd isr    myled = !myled;}int main(){    while(1) {        uart.putc('>');        uart.attach(&TXD_isr, Serial::TxIrq);        wait(1.0);    }}
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 09:43 , Processed in 0.114542 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.