c語言如何通過串列埠傳送16進位

2025-07-28 18:23:30 字數 3082 閱讀 8810

1樓:匿名使用者

轉成unsigned char 就可以了。

5a"轉成0x5a、即十進位的90~~~

2樓:網友

利用陣列的方式迴圈傳送啊。

求助:linux下c語言如何向串列埠傳送16進位資料

3樓:風若遠去何人留

linux特點是所有都是檔案。

包括串列埠裝置。

首先 找到你串列埠對應的裝置 一般是 /dev/ttys1當然 也可能是別的 需要你自己確認硬體。

然後 比如你要傳送0x01,0x02,0x03,0x04,int fd; fd = open("/dev/ttys1",o_rdwd);

char buf[256]=;

write(fd,buf,4);

close(fd);

這樣就可以了。

c語言, 關於16進位的串列埠傳送的問題

4樓:網友

unsigned long num;

unsigned char send_num;

num=123456789;

send_num=num&255;//0至7位send_data_uart(send_num);//傳送0x15send_num=num>>8;//8至15位send_data_uart(send_num);//傳送0xcdsend_num=num>>16;//16至23位send_data_uart(send_num);//傳送0x5bsend_num=num>>24;//24至31位send_data_uart(send_num);//傳送0x07或者定義乙個陣列得到4個位元組的資料,然後通過迴圈連續傳送。

5樓:網友

多謝kaixingui2012 指正。

第一種方法:

unsigned int val = 123456789;

send_data_uart( val & 0xff );

send_data_uart( (val >>8) &0xff );

send_data_uart( (val >>16) &0xff );

send_data_uart( (val >>24) &0xff );

第二種:unsigned int val = 123456789;

unsigned char *p;

p = (unsigned char *)val;

send_data_uart( p[0] )

send_data_uart( p[1] )

send_data_uart( p[2] )

send_data_uart( p[3] )

第一種較通用,第二種傳送順序跟大小端有關係。

6樓:網友

先定義乙個union udata;

if ( 1 ) //小端機,則從低到高傳送}else //大端機,從高到低傳送。

修正樓上的方法一,應該採用位與:

unsigned int val = 123456789;

send_data_uart( val & 0xff );

send_data_uart( (val >>8) &0xff );

send_data_uart( (val >>16)& 0xff );

send_data_uart( (val >>24)& 0xff );

請將貼結給樓上,我認為它的方法一效果更好。

7樓:上帝來自地球

可以這麼寫:

void send_oct_num(long int number)}send_oct_num(123456789)就行了,這下就沒問題了,有什麼不清楚的可以再問。

易語言通過串列埠如何傳送16進位數值?

8樓:匿名使用者

用 埠 元件的 傳送資料() 命令將十六進位轉換成十進位來傳送。

9樓:千鋒教育

其實計算機內資料都是通過機器語言傳遞的,因此都為2進位。所謂傳16進資料,不過在接收端轉換回來。

易語言中好象有個正規表示式支援庫提供轉換命令,你在工具_支援庫管理_把正規表示式支援庫勾上。

在微控制器c語言怎麼把16進位數變成10進位發到串列埠

10樓:徐老二嗯嗯嗯

串列埠都是用16進位傳送的,有兩種辦法,在接收到資料之後你把16進位轉為10進位就可以了,比如你傳送的十進位10,傳送的時是十六進位0x0a,接收到資料後轉成10進位 0ah = 10。

在傳送時把資料轉換成bcd碼,傳送十進位10,轉成bcd碼十六進位就是0x10,接收到資料時顯示的就是10h。

如何用「c#」對串列埠傳送16進位數?

11樓:yeping天下

忘了看你還要把接收的轉回10進位。

接收的如果是按位元組接收(readbyte),那麼接收回來的數直接就可以用10進製表示,如果需要顯示,可以直接在變數之後加。tostring();

不明白可直接加我hi

byte t = new byte[2];

t[0] = 0xaa;

t[1] = 0xbb;

串列埠物件。write(t,0,2);

其中3個引數順序為:byte型陣列,偏移(從第幾位開始發,從0開始計),傳送長度。

為了避免誤會,額外說個基礎:0xaa是 16進位的aa

如何用c語言從串列埠讀取的16進位數中提取4個位元組變為浮點數?急!!!

12樓:漠影歌

給你個思路,直接給你編的話可能對不上你的**。

自己再定義乙個陣列temp1,給乙個for迴圈,類似於for(i = 1; i < 5; i ++這樣temp1中就儲存了你的後四個位元組,之後再將這個temp1的元素乙個乙個轉換為十六進位輸出就好,比如說。

for(pos = 0;pos < 4; pos ++printf("%f ",(float)temp1[pos]);

printf("");

如何用「C」對串列埠傳送16進位制數

忘了看你還要把接收的轉回10進位制。接收的如果是按位元組接收 readbyte 那麼接收回來的數直接就可以用10進製表示,如果需要顯示,可以直接在變數之後加.tostring 不明白可直接加我hi 之前的回答 byte t new byte 2 t 0 0xaa t 1 0xbb 串列埠物件.wri...

c語言如何通過定義函式來轉置矩陣?

使用二維陣列來實現,通過嵌行跡套的for迴圈來實現矩陣的輸入。同樣的道理用兩個for迴圈來控制頃帶大轉置雀豎輸出。轉置前。轉置後。月日將乙個 的矩陣轉置,用一函式實現敗燃。在主函式中用scanf函式輸入以下矩陣元素 將陣列皮枯孫名燃鏈作為函式實參,再執行。c語言轉置矩陣函式思路 摘要。您好 c語言轉...

如何用nodejs通過post傳送multipart form data型別的htt

你不服就是幹 給你參考下 var https require https var fs require fs var util require util var path require path var boundaryprefix nbglme var mkpic function pic,fn...