嵌入式linux串口通信自发自收测试程序

 /*串口自收自发程序主函数*/
#include"uart_api.h"
int main()
{
 int fd;
 char buff[BUFFER_SIZE];
 char buff2[]="Hello NUAA2440!\n";
 int nread,nwrite;
 if((fd=open_port(TARGET_COM_PORT))<0)
 {
  perror("open serial error");
  return 1;
 }
 printf("open ok!\n");
 if(set_com_config(fd,115200,8,'N',1)<0) /*配置串口*/
 {
  perror("set_com_config error");
  return 1;
 }
 printf(" set ok!\n");
 
 /*将缓冲区buff2中的数据写入到串口1中去*/
 nwrite=write(fd,buff2,sizeof(buff2));
 printf("nwrite=%d\n",nwrite);   /*打印写入的数据*/
 /*接下来就是读数据*/
 while(1)
 {
  if((nread = read(fd,buff,1024))>0)
  {
   buff[nread] = '\0';
   printf("\nrecv:%d\n",nread);
   printf("%s",buff);
  }
 }
 close(fd);
 return 0;
 
}

 

 

时间: 2024-10-13 22:34:30

嵌入式linux串口通信自发自收测试程序的相关文章

基于vb设计pc与gsm模块串口通信,发收text格式短信

问题描述 基于vb设计pc与gsm模块串口通信,发收text格式短信 小白一个,花好几天都没搞出来,跪求各位大大帮忙设计一个程序,最好有解释的.要求可以收发删除text格式短信... 解决方案 http://download.csdn.net/detail/hedilong0123/4611789

linux编程-linux串口通信问题,急急急!!!

问题描述 linux串口通信问题,急急急!!! 我在开发板上qt程序,开发板跟PC机的虚拟机通过USB转串口线连接,上面运行的是Ubuntu12.04系统,我在PC上发送字符串,然后在开发板上接收,接收的数据单个单个字符接收,为什么不是一整个字符串接收呢?并且接收不到第一个字符,而且差不多接收10秒之后就不在接收数据了!!!!.请各位大神赐教!!! int fd,num,rtn; struct termios options; fd = open("/dev/ttyUSB0", O_R

linux串口通信!求大神!急

问题描述 linux串口通信!求大神!急 我现在有一块7444的开发板,想实现7444通过串口传输命令给7444开发板上的另一模块cc2530(zigbee中的协调器),然后发送给给第三方开发板(只要当前cc2530能接收到命令就能直接发送数据到zigbee终端,以实现),然后终端zigbee模块的温度数据回传到7444开发板上的CC2530协调器,再从串扣回传给7445,已知我当前的串口设备文件是tty1,怎么编写C程序读取改开发板上cc2530传来的温度数据,和通过串口给cc2530发送命令

cpu-求大神,linux串口通信方面!!!7445CPU串口和CC2530通信验证

问题描述 求大神,linux串口通信方面!!!7445CPU串口和CC2530通信验证 我现在有一块7444的开发板,想实现7444通过串口传输命令给7444开发板上的另一模块cc2530(zigbee中的协调器),然后发送给给第三方开发板(只要当前cc2530能接收到命令就能直接发送数据到zigbee终端,以实现),然后终端zigbee模块的温度数据回传到7444开发板上的CC2530协调器,再从串扣回传给7445,已知我当前的串口设备文件是tty1,怎么编写C程序读取改开发板上cc2530传

嵌入式linux串口设置(一)

在linux中,所有的设备文件一般都位于"/dev"下,串口1和串口2对应的设备名依次为"/dev/ttyS0", "/dev/ttyS1",而且USB转串口的设备名通常为"/dev/ttyUSB0",在linux下对设备的操作方法与对文件的操作方法一样. 串口开发步骤: 串口的设置主要是设置struct termios结构体的各成员值 #include<termios> struct termios {     

嵌入式linux串口编程(二)

/*com_writer.c*/#include "uart_api.h" int main(void){ int fd; char buff[BUFFER_SIZE]; if((fd=open_port(HOST_COM_PORT))<0)  /*打开串口*/ {  perror("open serial error");  return 1; } if(set_com_config(fd,115200,8,'N',1)<0) /*配置串口*/ {  

ARM 开发板嵌入式linux系统与主机PC通过串口传输文件

本文转载自http://useless20.blog.163.com/blog/static/237409982010227127576/ 嵌入式linux系统与主机通过串口传输文件      我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载.但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx.zmtx,另外一个是lsz.lrz.个人觉得zmrx/zmtx没有lsz/lrz稳定,建议还是用后

串口通讯-Linux下多线程串口通信问题

问题描述 Linux下多线程串口通信问题 我做的一个项目,把串口读写采用了一个独立的线程,进行数据的读写,在调试时,发现只要启动另外一个计算量比较大的线程,串口通信就出错了,而只要不启动这个线程,可以启动其他线程,串口工作没有任何问题,求原因? 解决方案 在C#中使用SerialPort类实现串口通信,多线程问题在C#中使用SerialPort类实现串口通信 遇到多线程问题在C#中使用SerialPort类实现串口通信 遇到多线程问题 解决方案二: 这两个线程有耦合吧?认真分析一下之间的联系.可

Linux下串口通信异常的问题

问题描述 Linux下串口通信异常的问题 本人在linux下进行串口通信程序开发,把串口通信放在一条单独的线程里,问题来了,程序在启动另外一个计算线程后,串口通信出现异常.两线程间并没有任何数据共享,串口通信无论非组塞还是阻塞都有问题!请高手分析下原因! 解决方案 串口通信的帧同步问题 解决方案二: 出现异常是什么意思? 串口读和写是不同的线程么?还是就一个简单的线程啊?