查看: 4792|回复: 3

[求助] 读串口数据的问题

[复制链接]

该用户从未签到

7

主题

25

帖子

0

新手上路

Rank: 1

积分
1
最后登录
1970-1-1
发表于 2011-5-14 10:44:06 | 显示全部楼层 |阅读模式
我想定时读取串口buf 中的数据,但是调用fread后,一直没有返回,直到有数据,fread函数才返回
我的初衷本来就是不想一直在那里等串口数据的。
 帮我看看有什么问题呀?该怎么做呢,谢谢!
我用的是ittyb,其中
   #ifndef BSPCFG_ENABLE_ITTYB
#define BSPCFG_ENABLE_ITTYB 1
#endif
  #if BSPCFG_ENABLE_ITTYB
        #define BSP_DEFAULT_IO_CHANNEL                      "ittyb:"
    #define BSP_DEFAULT_IO_CHANNEL_DEFINED
   #define BSP_DEFAULT_IO_OPEN_MODE                      (pointer) (IO_SERIAL_RAW_IO )
程序部分为:
  pointer  fh_ptr;
  uint_8  tmpval;
 
  fh_ptr = (pointer)fopen("ittyb:", BSP_DEFAULT_IO_OPEN_MODE);
  if(fh_ptr == NULL)
   return return_code;
    len =  fread(&tmpval,1,1,fh_ptr);                             //////////??????? 
 
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

2

主题

224

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
322
最后登录
1970-1-1
发表于 2011-5-15 18:56:09 | 显示全部楼层

RE:读串口数据的问题

"ittyX"是中断方式,用fread()会阻塞当前任务。
根据你的描述,应该实用ioctl()查询有数据后再调用fread()。

该用户从未签到

7

主题

25

帖子

0

新手上路

Rank: 1

积分
1
最后登录
1970-1-1
 楼主| 发表于 2011-5-15 19:58:00 | 显示全部楼层

RE:读串口数据的问题

能具体点儿么?
用ioctl()的那个

该用户从未签到

7

主题

25

帖子

0

新手上路

Rank: 1

积分
1
最后登录
1970-1-1
 楼主| 发表于 2011-5-17 17:42:53 | 显示全部楼层

RE:读串口数据的问题

顶一下,
居工,能说的详细点儿么,
用IOCTL()查询那个项后可以fread么?
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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

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

GMT+8, 2025-7-18 10:03 , Processed in 0.090901 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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