RS485使用串列埠輸出最後乙個位元組固定為FF

2021-10-18 04:07:49 字數 731 閱讀 7859

將stm32或stm8l作為主控時,在板子上使用到sp3458晶元,來實現串列埠轉rs485輸出,從而可以連線其他rs485輸出裝置

在串列埠轉485時,根據波特率的不同,總是出現輸出最後乙個位元組固定為0xff,前面位元組會根據波特率丟失或更改位元組大小

例如:u8 buf[5] =

rs485串列埠輸出十六進製制

01 02 03 04 ff

usart中輸出資料**:

//rs485串列埠輸出

void

uart1_sendstring

(char buf)

}

波特率的不同導致資料更改可以理解,但是在高或者低波特率時,最後乙個位元組0xff為固定輸出,覺得這才是重點,在輸出時,如果多輸出乙個位元組會怎樣

於是有u8 buf[6] =

rs485串列埠輸出十六進製制

01 02 03 04 05 ff

看來只要多輸出乙個位元組就好了

於是 在輸出時,輸出printf("");

問題解決

輸出結束後 多輸出一次null

貌似連波特率高低問題也解決了

void uart1_sendstring(char buf)

//需要多輸出一次

usart_senddata8(usart1,dat)

;//printf("")

;}

輸出中序遍歷下最後乙個結點

include include typedef char datatype 樹結構體的定義 typedef struct node bintree bintree root typedef struct stack 棧的結構定義 seqstack void push seqstack s bintr...

解決for迴圈有時只輸出最後乙個結果

我們平常用都是這樣的 for var i 0 i 3 i 有時候列印i出來的是2,也有時候是按照順序打出來的,但是很不穩定。我們要操作就很麻煩,for let i 0 i 3 i 把var換成let就可以了,因為let宣告的變數只在它所在的 塊有效,var命令宣告的變數i,在全域性範圍內都有效,所以...

輸出字串最後乙個單詞的長度

這是華為機試的一道程式設計題,但是並不複雜,只是簡單的字串處理,尤其是使用python這種語言,其實幾行 就可以搞定,做過以後在此總結一下。題目描述 計算字串最後乙個單詞的長度,單詞以空格隔開。輸入描述 一行字串,非空,長度小於5000。輸出描述 整數n,最後乙個單詞的長度。輸入例子 hello w...