int8 UartWrite(const void *buff, int8 len){ int8 i, end; const uint8 *src;
/* 获取实际可写入长度 */ EA = 0; i = ComSta.txtop - ComSta.txbtm; EA = 1; if (i < 0) { i += TX_BUFF_SIZE; } i = TX_BUFF_SIZE - i; if (len > i) { return 0; }
/* 拷贝数据到缓冲区中 */ src = (const uint8 *)buff; i = ComSta.txtop; end = i + len; if (end < TX_BUFF_SIZE) { for (; i<end; i++) { TxBuff
= *src++; } } else { for (; i<TX_BUFF_SIZE; i++) { TxBuff = *src++; } end -= TX_BUFF_SIZE; for (i=0; i<end; i++) { TxBuff = *src++; } } /* 修改缓冲区指向信息 */ EA = 0; if (ComSta.txbtm == ComSta.txtop) { ti = 1; } ComSta.txtop = end; EA = 1; return len;}请高手帮我解析一下这个串口写入数据的程序,特别是 src = (const uint8 *)buff这句是什么意思 (const uint8 *)是类型强制转换的意思吗。
一周热门 更多>