MT6835磁编码器 使用方法
PrivateCage:
您好,单字节写入SPI修改单圈脉冲时,首先向0x007写入分辨率值的高8位,然后向0x008写入低6位,(最后两位是反向和ABZ开启,按照0设置),结果MT6835好像变砖了,我是哪里出错了吗
[code=csharp]
en_result_t MT6835_Resolution_Change(uint16_t resolution_ratio)
{
uint8_t pTxData[3]={0,0,0};
uint16_t address = 0x007;
Spi_SetCS(M0P_SPI0, TRUE);
address=((address&0x0FFF)|WRITECOMMAND);
pTxData[0]=(uint8_t)(address>>8);
pTxData[1]=(uint8_t)(address>>0); // 低8位
pTxData[2]=(uint8_t)(resolution_ratio>>8);
Spi_SetCS(M0P_SPI0, FALSE);
while(Ok != Spi_SendBuf(M0P_SPI0, (unsigned char *)pTxData, 3)) // 写入0x007
{
;
}
Spi_SetCS(M0P_SPI0, TRUE);
address = 0x008;
address=((address&0x0FFF)|WRITECOMMAND);
pTxData[0]=(uint8_t)(address>>8);
pTxData[1]=(uint8_t)(address>>0);
pTxData[2]=(uint8_t)(resolution_ratio);
Spi_SetCS(M0P_SPI0, FALSE);
while(Ok != Spi_SendBuf(M0P_SPI0, (unsigned char *)pTxData, 3))
{
;
}
Spi_SetCS(M0P_SPI0, TRUE); // 拉高引脚,表示一帧写入完毕
return Ok;
}
[/code]
|