簡體   English   中英

無法在Hex C ++中寫入x00

[英]Can not write x00 in hex c++

我需要向串行端口0x00寫入設備地址,但是當我嘗試時,它什么也沒寫。

const char bufferTX[11] = "\xA5\x00\x05\x10\x00\x00\xD0\x01\x00\x00";

這是我要發送到串行端口的緩沖區。 下面的功能是將數據發送到串行端口

for(int k = 0; k<sizeof(bufferTX); k++)
{
  RS232_cputs(cport_nr, &bufferTX[k]);  
  printf("sent: %c\n", bufferTX[k]);
}

名稱RS232_cputs (注意最后一個s )暗示它打算用於編寫字符串 ,這些字符串在C中以NUL終止。使用谷歌搜索名為的函數將我帶到一些文檔 ,該文檔似乎證實了這一點,並引用了實現:

 while(*text != 0) RS232_SendByte(comport_number, *(text++)); 

您可能應該使用基於字節的函數,而不是基於字符串的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM