2942
- 收藏
- 点赞
- 分享
- 举报
调试串口改通信串口读不到数据
各位大神有没用试过调试串口改通信串口,我改了之后能正常发送,可是接收不到数据,
1.把uboot的console=ttyAMA0,115200去掉了内核打印
2.注释掉inittab的ttyS000::respawn:/sbin/getty -L ttyS000 115200 vt100 # GENERIC_SERIAL
请问是不是我的方法不对?
我用cat /proc/tty/driver/ttyAMA 查看每次uart0的rx是有变化的,说明串口数据收到缓冲区了吧?但是调用read读数据的时候每次返回都是0,每次read都有select一下的
serinfo:1.0 driver revision:
0: uart:PL011 rev2 mmio:0x20080000 irq:5 tx:9025 rx:74 RTS|CTS|DTR|DSR|CD|RI
1: uart:PL011 rev2 mmio:0x20090000 irq:30 tx:9494 rx:21257 RTS|DTR|DSR|CD|RI
2: uart:PL011 rev2 mmio:0x200A0000 irq:25 tx:0 rx:1870 RTS|CTS|DTR|DSR|CD|RI
接收函数如下:
int UART0_Recv(int fd, char *rcv_buf, int data_len)
{
int len, fs_sel=1;
fd_set fs_read;
struct timeval time;
FD_ZERO(&fs_read);
FD_SET(fd, &fs_read);
time.tv_sec = 3;
time.tv_usec = 0;
fs_sel = select(fd + 1, &fs_read, NULL, NULL, &time);
int totol = 0;
ioctl(fd, FIONREAD, &totol);
printf("fs_sel = %d %d\n", fs_sel, totol);
if (fs_sel && FD_ISSET(fd, &fs_read))
{
len = read(fd, rcv_buf, 1);
printf("fs_sel %d = %d %s\n", errno, len, rcv_buf);
return len;
}
else
{
return FALSE;
}
}
1.把uboot的console=ttyAMA0,115200去掉了内核打印
2.注释掉inittab的ttyS000::respawn:/sbin/getty -L ttyS000 115200 vt100 # GENERIC_SERIAL
请问是不是我的方法不对?
我用cat /proc/tty/driver/ttyAMA 查看每次uart0的rx是有变化的,说明串口数据收到缓冲区了吧?但是调用read读数据的时候每次返回都是0,每次read都有select一下的
serinfo:1.0 driver revision:
0: uart:PL011 rev2 mmio:0x20080000 irq:5 tx:9025 rx:74 RTS|CTS|DTR|DSR|CD|RI
1: uart:PL011 rev2 mmio:0x20090000 irq:30 tx:9494 rx:21257 RTS|DTR|DSR|CD|RI
2: uart:PL011 rev2 mmio:0x200A0000 irq:25 tx:0 rx:1870 RTS|CTS|DTR|DSR|CD|RI
接收函数如下:
int UART0_Recv(int fd, char *rcv_buf, int data_len)
{
int len, fs_sel=1;
fd_set fs_read;
struct timeval time;
FD_ZERO(&fs_read);
FD_SET(fd, &fs_read);
time.tv_sec = 3;
time.tv_usec = 0;
fs_sel = select(fd + 1, &fs_read, NULL, NULL, &time);
int totol = 0;
ioctl(fd, FIONREAD, &totol);
printf("fs_sel = %d %d\n", fs_sel, totol);
if (fs_sel && FD_ISSET(fd, &fs_read))
{
len = read(fd, rcv_buf, 1);
printf("fs_sel %d = %d %s\n", errno, len, rcv_buf);
return len;
}
else
{
return FALSE;
}
}
我来回答
回答3个
时间排序
认可量排序
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
相关问答
-
2020-08-19 14:52:01
-
2015-05-24 14:35:14
-
2022-10-21 16:28:41
-
2020-10-22 14:55:26
-
2015-04-01 19:01:44
-
142017-09-18 10:52:07
-
2018-12-18 09:16:30
-
2008-11-19 18:58:18
-
2016-01-06 14:28:34
-
2008-07-18 20:42:04
-
2008-11-19 19:04:12
-
2020-10-22 15:31:02
-
2021-03-01 15:23:46
-
2020-04-07 13:57:54
-
2025-10-30 15:22:53
-
2019-08-05 22:21:29
-
2013-08-26 23:31:50
-
2019-01-15 09:08:02
-
2020-11-03 14:18:45
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5hisi3516cv610 + gc4336p 夜晚很模糊
-
5AIISP(功能演示,SC4336P为BGGR,强制转RGGB,会导致颜色异常)
-
5rv1106使用luckfox的SDK,设备树和驱动都写好了,结果设备文件没有生成
-
5海思3516cv610中如何进行SD卡升级,根据官方文档操作,烧录进板子时,走的默认uboot,没有执行uboot升级。
-
5G610Q-IPC-38E 夜晚很暗 有什么办法解决吗 已经补光了
-
10转换模型时,SoC版本里没显示hi3516cv610芯片
-
5hisi3516cv610 使用 yolov8n 模型训练 要如何提高 这里识别的是人
-
10有人在海思平台接过SC035HGS吗
-
5关于hi3519dv500,以SD卡虚拟 U 盘操作
-
5ss928 sample_venc代码移植到openEuler24.03上执行报错 [sample_comm_vi_start_dev]-1068: vi set dev attr failed wi
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认

微信扫码分享
QQ好友