2017-12-17 43 views
3

の結果:C警告[pe069]整数変換は、私はこの質問はとにかく私が見つけて、私の特定の場合には答えませんでした、いくつかの回を頼まれたことを知って切り捨て

SPI2_Tx(DVC_CTR2,  0x1000); 

DVC_CTR2が

#define DVC_CTR2    0x0F 
である:

行に "警告[pe069]整数変換はトランケーションをもたらしました"

とSPI2_Txの定義は、私はこの警告を解決するにはどうすればよい

static void SPI2_Tx(uint8_t pAddress, uint8_t pData) 

のですか? ありがとうございます!

+1

'0x1000'は' uint8_t'に収まらないためです。 –

+0

[警告: '整数変換結果の切り捨て']の重複可能性があります(https://stackoverflow.com/questions/9479403/warning-integer-conversion-results-in-truncation) –

+0

@ Jean-FrançoisFabreありがとうございますuint16_tのために行く必要がありますか? – gigapico00

答えて

3

これは、1バイトを送信するSPIルーチンによって2バイト値を送信できないためです。

次の2回の別々の呼び出しでそれを行うことができる必要があります:あなたはuint16_tをとる異なるルーチンを見て、一度に16ビットを送信する必要がある場合は

SPI2_Tx(DVC_CTR2, 0x10); 
SPI2_Tx(DVC_CTR2, 0x00); 

+1

はもちろん、データが一連のバイトである場合です。そうでなければ、エンディアンに依存する場合、リトルエンディアン –

関連する問題

 関連する問題