uint16 halUartWrite(uint8 *buf, uint16 len)
{
uint16 cnt;
// Accept "all-or-none" on write request.
if (HAL_UART_ISR_TX_AVAIL() < len)
{
return 0;
}
for (cnt = 0; cnt < len; cnt++)
{
uartCfg.txBuf[uartCfg.txTail] = *buf++;
uartCfg.txMT = 0;
if (uartCfg.txTail >= HAL_UART_ISR_TX_MAX - 1)
{
uartCfg.txTail = 0;
}
else
{
uartCfg.txTail++;
}
// Keep re-enabling ISR as it might be keeping up with this loop due to other ints.
IEN2 |= UTX0IE;
}
return cnt;
}这是能让芯片发送命令的代码吗
uint16 halUartRead(uint8 *buf, uint16 len)
{
uint16 cnt = 0;
while ((uartCfg.rxHead != uartCfg.rxTail) && (cnt < len))
{
*buf++ = uartCfg.rxBuf[uartCfg.rxHead++];
if (uartCfg.rxHead >= HAL_UART_ISR_RX_MAX)
{
uartCfg.rxHead = 0;
}
cnt++;
}
return cnt;
}这是RX接收红外测距回发数据吗
问的问题都不清楚,说明你连程序流程都没搞懂。