前段時間編寫了串列埠通訊的**用的是rs-232資料線;
#include /*標準輸入輸出定義*/
#include /*標準函式庫定義*/
#include /*unix 標準函式定義*/
#include #include #include #include #include #include #define dev "/dev/ttys1"
#define max_size 2048
int set_com_config(int fd,int baud_rate,int data_bits,char parity,int stop_bits)
//設定字元大小
new_cfg = old_cfg;
cfmakeraw(&new_cfg);//配置為原始模式
new_cfg.c_cflag&=~csize;
//設定波特率
switch(baud_rate)
case 4800:
case 9600:
case 19200:
case 38400:
case 115200:
default: break;
} cfsetispeed(&new_cfg,speed);
cfsetospeed(&new_cfg,speed);
//設定停止位
switch(data_bits)
default:
case 8:
}//設定奇偶校驗位
switch(parity)
case 'e':
case 'e':
case 's':
case 's':
default:
case 'n':
case 'n':
}//設定停止位
switch(stop_bits)
default:
case 1:
}//設定等待時間和最小接收字元
new_cfg.c_cc[vtime] =0;
new_cfg.c_cc[vmin] =1;
//處理未接收字元
tcflush(fd,tciflush);
//啟用新配置
if((tcsetattr(fd,tcsanow,&new_cfg))!=0)
return 0;
}//開啟串列埠函式
int open_port(int com_port)
; #else//使用usb轉串列埠
char*dev = ;
#endif
if((com_port<0)||(com_port > max_com_num))
//開啟串列埠
if((fd=open(dev[com_port-1],o_rdwr|o_noctty|o_ndelay))<0)
//恢復串列埠為堵塞狀態
if(fcntl(fd,f_setfl,0) <0 )
//測試是否為終端裝置
if(isatty(stdin_fileno)==0)
return fd;
}int main(int argc,char*argv)
printf("open sucess!\n");
if((set_com_config(fd,9600,8,'n',1))<0)
printf("set sucess!\n");
real_read=read(fd,buffer,sizeof(buffer));
if(real_read<0)
printf("start read...\n");
printf("....%s..\n",buffer);
close(fd);
return 0;
}
VC 串列埠通訊實現方式
利用師姐qt2440開發板控制機械臂,串列埠通訊出現問題,找到usb轉串列埠後,任然找不到相應的驅動。初步打算用微控制器實現。1.基於active控制項的方式 mscomm 優點是 直接利用控制項,在串列埠有資料到達時,會促發相應的事件響應函式,然後你可以在實踐響應函式裡,進行資料的讀取。缺點是 資...
串列埠通訊實驗
晶振12mhz,波特率1200,程式啟動後微控制器主動發出hello server,pc使用串列埠助手應答微控制器,當微控制器收到pc發來的資料aah後,將30h 3fh的16個位元組傳送給pc,當51收到e0h時就發40h 5fh的32個位元組資料,若微控制器收到其他資料後,則不做任何修改返回pc...
串列埠通訊實戰
start.s 檔名 start.s 描述 演示串列埠通訊 define wtcon 0xe2700000 define svc stack 0xd0037d80.global start 把 start鏈結屬性改為外部,這樣其他檔案就可以看見 start了 start 第1步 關看門狗 向wtco...