tq2440开发板串口读写问题,各位请进,在线等待

dingyuanpu dingyuanpu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
用串口线 pc机连接tc35开发板,使用虚拟机Linux,执行下列程序,能够成功打电话
可是用我的tq2440连接tc35开发板,写入数据却读不出来,也不能打电话,请各位大侠指点


#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <error.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <stdlib.h>

int fd;

/*
* 打开串口1
*/
int open_ttyS0()
{
//O_RDWR:以读写的方式打开设备
//O_NOCTTY:如果欲打开的文件为终端设备时,则不会将该终端当成当前进程控制终端
//O_NDELAY:以不可阻断的方式打开文件,即无论有无数据读取或等待,都会立即返回进程之中

//fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY); //虚拟机Linux测试
fd = open("/dev/tq2440_serial0", O_RDWR | O_NOCTTY | O_NDELAY); //tq2440 Linux测试

printf("\nfd = %d\n\n", fd);

if(fd < 0) //打开失败
{
return -1;
}

//恢复串口为阻塞状态
if(fcntl(fd, F_SETFL, 0) < 0) //F_SETFL:改变open设置的标志
{
close(fd);

return -2;
}

//测试是否为终端设备
if(0 == isatty(fd)) //isatty:检查设备类型
{
close(fd);

return -3;
}

return fd;
}

/*
* 设置串口1,共9步
* 数据位:8
* 校验位:无
* 波特率:115200
* 停止位:1
*/
int set_ttyS0()
{
struct termios newtio, oldtio;

//1、保存原有串口配置
if(tcgetattr(fd, &oldtio) != 0)
{
return -1;
}

//2、激活本地连接和接受使能
bzero(&newtio, sizeof(newtio)); //使用之前先清空
newtio.c_cflag |= CLOCAL | CREAD;

//3、设置字符大小
newtio.c_cflag &= ~CSIZE; //除去数据位中的位掩码
newtio.c_cflag |= CS8; //设置数据位

//4、设置奇偶校验位:无奇偶校验位
newtio.c_cflag &= ~PARENB; //激活校验位使能标志

//5、设置波特率
cfsetispeed(&newtio, B115200);
cfsetospeed(&newtio, B115200);

//6、设置停止位:1
newtio.c_cflag &= ~CSTOPB;

//7、设置等待时间和最小接收字符
newtio.c_cc[VTIME] = 0;
newtio.c_cc[VMIN] = 0;

//8、处理要写入的引用对象
tcflush(fd, TCIFLUSH); //处理未接收字符串,TCIFLUSH:刷新收到的数据但不读

//9、激活新配置
if(tcsetattr(fd, TCSANOW, &newtio) != 0) //TCSANOW:改变的配置立即生效
{
return -2;
}

return 0;
}

int main()
{
char cmd[] = "ATD 15954179972;\r";

open_ttyS0();
set_ttyS0();

printf("write: %d\n", write(fd, cmd, sizeof(cmd)));
sleep(2);
printf("read: %d\n", read(fd, cmd, sizeof(cmd)));

return 0;
}


在tc35和pc机相连的时候执行成功,如下图

但是tc35和tq2440开发板相连的时候就出现问题了,如下图
...全文

相关推荐

TQ2440烧写uboot全过程

**兼容性问题**:注意所用软件与开发板之间的兼容性,避免使用不匹配的软件版本。#### 六、总结通过本文的详细介绍,相信读者已经了解了如何通过JTAG接口对TQ2440开发板进行U-Boot的烧写。

junkor

TQ2440开发板结合UCGUI实现触屏交互

TQ2440开发板是一款基于ARM9内核的高性能开发平台,广泛应用于嵌入式系统开发、物联网项目、移动通信设备等领域。该开发板搭载了S3C2440A处理器,具备丰富的接口资源和灵活的扩展能力,使其能够满足多种硬件开发需求。容感式触屏(Projected Capacitive Touch,PCT)是一种电容式触控技术,通过在屏幕的玻璃表面嵌入电极矩阵,当手指触摸屏幕时,人体的电容会影响电极矩阵中的电容分布,从而检测触摸位置。

叶宇霖

TQ2440开发板综合测试与原理图分析

本文还有配套的精品资源,点击获取 简介:TQ2440作为基于Samsung S3C2440处理器的嵌入式开发板,在开发领域有着广泛的应用。文章深入解析了裸跑程序的开发和应用,以及相关的硬件设计如PCB布局、布线和原理图的详细信息。还涉及到使用ADS1.2工具链进行开发和调试,以及TQ2440测试程序,旨在提供完整的开发实例,并帮助开发者理解和应用S3C2440处理器的特性。...

魑魅丶小鬼

TQ2440开发板64位USB下载驱动完整安装指南

TQ2440开发板是一款基于ARM9架构的经典嵌入式开发平台,广泛应用于教学、科研和工业控制领域。其核心处理器为三星S3C2440芯片,具备丰富的外设接口与良好的稳定性,是学习嵌入式Linux系统开发的理想硬件平台。本章将介绍TQ2440的基本结构、应用场景以及其在嵌入式开发中的地位,帮助读者建立对开发板的整体认知。同时,将简要阐述嵌入式系统的开发流程及其与通用计算机系统的差异,为后续章节的深入学习打下坚实基础。

滚菩提哦呢

TQ2440开发板 TQ2440开发板

TQ2440开发板是一款基于Samsung S3C2440处理器的嵌入式系统开发平台,常用于教学、研究以及硬件原型设计。

fcg1029
评论 4
收藏 已收藏
分享
返回顶部
dingyuanpu
Linux/Unix社区 23,224 成员 74,535 内容