读写缓冲区
读写缓冲区的操作也是易于理解的。需要说明的是,两个函数具有相同的输入参数,参数len代表被操作数据的长度,pdata为被操作数据的指针。和寄存器读写函数相似,发送或接收数据之前需要发送特定的操作码。
<font size="3">void enc28j60ReadBuffer(unsigned int len, unsigned char* pdata)
{
/* 使能ENC28J60 */
ENC28J60_CSL();
/* 通过SPI发送读取缓冲区命令*/
spi_sendbyte(ENC28J60_READ_BUF_MEM);
/* 循环读取 */
while(len)
{
len--;
/* 读取数据 */
*pdata = (unsigned char)spi_sendbyte(0);
/* 地址指针累加 */
pdata++;
}
/* 增加字符串结尾 便于操作 */
*pdata='\0';
/* 禁止ENC28J60 */
ENC28J60_CSH();
}
void enc28j60WriteBuffer(unsigned int len, unsigned char* pdata)
{
/* 使能ENC28J60 */
ENC28J60_CSL();
/* 通过SPI发送写取缓冲区命令*/
spi_sendbyte(ENC28J60_WRITE_BUF_MEM);
/* 循环发送 */
while(len)
{
len--;
/* 发送数据 */
spi_sendbyte(*pdata);
/* 地址指针累加 */
pdata++;
}
/* 禁止ENC28J60 */
ENC28J60_CSH();
}</font>
复制代码转载
|