前提・実現したいこと
実現したいことはpic32を用いて加速度センサーから送らてくる情報を読むこと
ここに質問の内容を詳しく書いてください。
私の勉強不足なのですがこちらの関数を動かすにはどのような引数を渡せばいいのかわかりません。
やりたいことはただメイン関数内でこちらの関数を実行したいだけです。
わからなないのに何でこんなプログラムが書けなのかと思われるかもしれませんが,harmony V3というMPLABのプラグインで自動生成されたものです。
発生している問題・エラーメッセージ
../src/main.c:113:9: error: too few arguments to function 'UART1_Read'
UART1_Read();
^~~~~~~~~~
../src/main.c:42:6: note: declared here
bool UART1_Read(void *buffer, const size_t size );
^~~~~~~~~~
該当のソースコード
C言語(xc32というコンパイラー)
ソースコード
bool UART1_Read(void* buffer, const size_t size )
{
bool status = false;
uint8_t* lBuffer = (uint8_t* )buffer;
if(lBuffer != NULL) { /* Check if receive request is in progress */ if(uart1Obj.rxBusyStatus == false) { /* Clear error flags and flush out error data that may have been received when no active request was pending */ UART1_ErrorClear(); uart1Obj.rxBuffer = lBuffer; uart1Obj.rxSize = size; uart1Obj.rxProcessedSize = 0; uart1Obj.rxBusyStatus = true; uart1Obj.errors = UART_ERROR_NONE; status = true; /* Enable UART1_FAULT Interrupt */ IEC1SET = _IEC1_U1EIE_MASK; /* Enable UART1_RX Interrupt */ IEC1SET = _IEC1_U1RXIE_MASK; } } return status;
}
---------------加筆しました。-----------------
void UART1_RX_InterruptHandler (void)
{
if(uart1Obj.rxBusyStatus == true)
{
while((_U1STA_URXDA_MASK == (U1STA & _U1STA_URXDA_MASK)) && (uart1Obj.rxSize > uart1Obj.rxProcessedSize) )
{
if (( U1MODE & (_U1MODE_PDSEL0_MASK | _U1MODE_PDSEL1_MASK)) == (_U1MODE_PDSEL0_MASK | _U1MODE_PDSEL1_MASK))
{
/* 9-bit mode /
((uint16_t)uart1Obj.rxBuffer)[uart1Obj.rxProcessedSize++] = (uint16_t )(U1RXREG);
}
else
{
/* 8-bit mode */
uart1Obj.rxBuffer[uart1Obj.rxProcessedSize++] = (uint8_t )(U1RXREG);
}
}
/* Clear UART1 RX Interrupt flag */
IFS1CLR = _IFS1_U1RXIF_MASK;
/* Check if the buffer is done */
if(uart1Obj.rxProcessedSize >= uart1Obj.rxSize)
{
uart1Obj.rxBusyStatus = false;
/* Disable the fault interrupt */
IEC1CLR = _IEC1_U1EIE_MASK;
/* Disable the receive interrupt */
IEC1CLR = _IEC1_U1RXIE_MASK;
if(uart1Obj.rxCallback != NULL)
{
uart1Obj.rxCallback(uart1Obj.rxContext);
}
}
}
else
{
// Nothing to process
;
}
}
試したこと
調べたことはconstが定数を表していること、size_tは長さを表すってことを調べて分かったくらいです。何も調べていないに等しいです。
補足情報(FW/ツールのバージョンなど)
回答3件
あなたの回答
tips
プレビュー