1樓:匿名使用者
經過驗證,串列埠應該沒有資料讀上來,所以導致讀到的資料的數量是0,列印出hello是因為buff本身初始化就是hello,所以顯示是hello
#include
#include
#include
#include
#include
#include
#include
int main()
printf("fd = %d\n",fd);
nread = read(fd,buff,8);
//while( (i = read(fd,buff,512) ) > 0 )
// =i ;
close(fd);
return 0;}
2樓:匿名使用者
串列埠沒有接收到資料,接收緩衝區裡面就沒有資料,nread肯定就是0啊,你得用個除錯軟體傳送一組資料,然後再接收.
另外參考一下我的串列埠初始化函式,這個是肯定沒問題的:
int initcomm(char *devname)
new_termio.c_cflag = b115200 | cs8 | clocal | cread;
new_termio.c_iflag = ignpar; //ingorn parity check error
new_termio.c_oflag = 0;
new_termio.c_lflag = 0;
new_termio.c_cc[vtime] = 0;
new_termio.c_cc[vmin] = 0;
tcflush (fd, tciflush);
設定流控制,波濤率,校驗位
return fd;
}fd = initcomm("/dev/ttys0");
buf[nread]='\0' 什麼意思
3樓:董俊錕
'\0' 是字串結束標誌,前面是你定義的字元陣列吧
4樓:
等同於buf[nread]=0;
ascii碼儲存中的結束碼。
5樓:匿名使用者
buf[0]='\0' 就是給buf的第一個字元賦值'\0'
buf[nread]='\0' 就是給buf的第nread個字元賦值'\0'
什麼是串列埠通訊啊,什麼是串列埠通訊?
串列埠是計算機上一種非常通用裝置通訊的協議 不要與通用序列匯流排universal serial bus或者usb混淆 大多數計算機包含兩個基於rs232的串列埠。串列埠同時也是儀器儀表裝置通用的通訊協議 很多gpib相容的裝置也帶有rs 232口。同時,串列埠通訊協議也可以用於獲取遠端採集裝置的資...
串列埠通訊與並口通訊有啥區別,網路通訊應該屬於串列埠通訊還是並口通訊?
暴風錘 串列埠按位 bit 傳送和接收位元組。儘管比按位元組 byte 的並行通訊慢,但是串列埠可以在使用一根線傳送資料的同時用另一根線接收資料。它很簡單並且能夠實現遠距離通訊。比如ieee488定義並行通行狀態時,規定裝置線總長不得超過20米,並且任意兩個裝置間的長度不得超過2米 而對於串列埠而言...
VC 串列埠通訊中怎麼將串列埠收到的資料儲存到檔案中
在oncomm事件中作如下處理 long cscrdlg oncommunicate wparam ch,lparam port catch cfileexception,e end catch if error 0 messagebox 檔案已儲存!bj2948a提示 mb iconinforma...