查看: 13092|回复: 10

[MQX] MQX下串口中断接收再转发的样例程序

[复制链接]
  • TA的每日心情
    奋斗
    2017-1-17 10:45
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    38

    主题

    395

    帖子

    3

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2023-11-17
    发表于 2012-2-28 15:48:07 | 显示全部楼层 |阅读模式
    我想使用MQX自带的串口接收驱动,写了一个任务,完成从串口3接收一个字符就回发的功能。
    可是,工作不正常,或者说是方法可能就是错的,希望用过的朋友指点一下。
    附代码如下:
    void task_frame(uint_32 initial_data)
    {
        MQX_FILE_PTR fp;
        uint_8 ch;
       
        fp = fopen("ittyd", BSP_DEFAULT_IO_OPEN_MODE);
       
        printf("task_frame\n");
       
        while (1)
        {
            //fscanf(fp, "%c", &ch);
            ch = fgetc(fp);
            printf("%c\n", ch);
        }
    }
     
    我知道答案 目前已有10人回答
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-2-28 17:30:17 | 显示全部楼层

    RE:MQX下串口中断接收再转发的样例程序

    printf("%c\n", ch);
    printf是用哪个串口发送的?while循环里面要加一个延时,这是必须的。不然会死到这个任务里面的。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-17 10:45
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    38

    主题

    395

    帖子

    3

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2023-11-17
     楼主| 发表于 2012-3-2 20:09:35 | 显示全部楼层

    回复:MQX下串口中断接收再转发的样例程序

    自己搞了两个白天一个通宵,用了信号量、消息、事件等等,但都是不行,后来在Freescale的官方论坛上看到了一段参考程序。
    经验证,可以正常工作。现贴出自己写的完整的测试任务,供大家参考。

    #include "app_inc.h"  // 包含APP工程总头文件
    void task_uart(uint_32 initial_data)
    {
        MQX_FILE_PTR fp;
        char ch;
       
        printf("TASK UART START.\n");
       
        //fp = fopen("ittyd:", BSP_DEFAULT_IO_CHANNEL);
        fp = fopen("ittyf:", (pointer)(IO_SERIAL_XON_XOFF | IO_SERIAL_TRANSLATION));
       
        printf("ITTYF OPENED.\n");
       
        while (TRUE)
        {
            if(fstatus(fp))
            {
                ch = fgetc(fp);
                fputc(ch, fp);    // 从哪个串口接收就从哪个串口回发
                printf("%c", ch); // 从默认IO通信接口显示
                // 进行帧解析
                //...
            }else
            {
                _time_delay(1);
            }
        }
    }
    我使用了两个串口:串口3和串口5。
    其中,串口3是默认输出串口(printf),串口5是测试输入端口,如果要使用串口3收发,打开“ittyd:”即可。
    需要注意的时候,打开串口时,若使用默认的”BSP_DEFAULT_IO_CHANNEL“模式,会打开回显功能,因此建议手动配置打开模式,不打开回显功能(参见代码)。
    Tip:
    在学习mqx的时候,由于可参考的资料不全,虽然这么个简单的小程序很短,但是自己在琢磨的时候走了很多弯路。
    希望研究mqx的前辈们能够指点我们这些mqx新手,另外,建议大家在学习mqx的过程中将心得分享出来,越是基本的问题,就越是需要说清楚。
    在学习过程中,多几个伙伴会让自己进步更快。
    以此贴,支持安版主的辛勤工作。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-3-3 10:02:39 | 显示全部楼层

    RE:MQX下串口中断接收再转发的样例程序

    printf,一般是从串口1输出的,而你现在使用的是串口3来输出监听输出,这样肯定是收不到数据的。监听哪个串口,就要用哪个串口输出。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-17 10:45
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    38

    主题

    395

    帖子

    3

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2023-11-17
     楼主| 发表于 2012-3-3 19:28:23 | 显示全部楼层

    回复:MQX下串口中断接收再转发的样例程序

    我这个是在K60的板子上测试的,而且板子上引出了串口3和串口5,我专门做了多串口的测试,完全没问题。
    对于默认串口使用的是printf输出,对于附加串口,使用的是fprintf输出。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    18

    帖子

    0

    新手上路

    Rank: 1

    积分
    18
    最后登录
    1970-1-1
    发表于 2013-3-27 10:43:46 | 显示全部楼层

    回复:MQX下串口中断接收再转发的样例程序

    有没有完整的程序,给发一个吧,大侠!!894373384@qq.com,还有那个串口IO口在哪定义啊?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    178

    帖子

    0

    高级会员

    Rank: 4

    积分
    825
    最后登录
    1970-1-1
    发表于 2013-4-24 16:30:03 | 显示全部楼层

    回复:MQX下串口中断接收再转发的样例程序

    回复第 4 楼 于2012-03-03 18:02:39发表:
    printf,一般是从串口1输出的,而你现在使用的是串口3来输出监听输出,这样肯定是收不到数据的。监听哪个串口,就要用哪个串口输出。
     
    TWR-K60N512上引出的串口就是UART3和UART5,如果换了其他的板子就另当别论。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-17 10:45
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    38

    主题

    395

    帖子

    3

    高级会员

    Rank: 4

    积分
    780
    最后登录
    2023-11-17
     楼主| 发表于 2013-5-9 17:32:55 | 显示全部楼层

    回复:MQX下串口中断接收再转发的样例程序

    回复第 6 楼 于2013-03-27 18:43:46发表:
    有没有完整的程序,给发一个吧,大侠!!894373384@qq.com,还有那个串口IO口在哪定义啊? 

    关键代码都贴出来了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    18

    帖子

    0

    新手上路

    Rank: 1

    积分
    18
    最后登录
    1970-1-1
    发表于 2013-6-11 19:52:08 | 显示全部楼层

    回复:MQX下串口中断接收再转发的样例程序

    回复第 5 楼 于2012-03-03 19:28:23发表:
    我这个是在K60的板子上测试的,而且板子上引出了串口3和串口5,我专门做了多串口的测试,完全没问题。
    对于默认串口使用的是printf输出,对于附加串口,使用的是fprintf输出。问一下,我串口波特率和数据位设置成9600和8了,在串口住手上还是收到的乱码,请问可能是什么原因啊? 
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-1-9 21:21
  • 签到天数: 56 天

    连续签到: 1 天

    [LV.5]常住居民I

    52

    主题

    677

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    1470
    最后登录
    2021-1-9
    发表于 2013-7-7 10:51:25 | 显示全部楼层

    RE:MQX下串口中断接收再转发的样例程序

    楼主,这不是已中断方式实现的呀?!
    能否提供一份在MQX下关于串口中断收发,GPIO中断的例程。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 20:38 , Processed in 0.118204 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表