SPI写入

sunboyljp 2010-11-05 04:10:40
// Write tup TSC2100 Register
BOOL TSC2100WriteReg(USHORT targetReg, USHORT newValue)
{

USHORT TargetValue = newValue;
USHORT CMD = TSC2100_WRITE | targetReg;
SPIHDR spiHdr;

GRABMUTEX();
DEBUGMSG(ZONE_TEST, (TEXT("WriteReg COMMAND=%x: VALUE= %x\r\n"), CMD, newValue));

memcpy(spiHdr.Cmd, &CMD, 2);
//*(USHORT *)spiHdr.Cmd = TSC2100_WRITE|targetReg;
spiHdr.dwCmdLen = 2;
spiHdr.pDataBuf = (LPBYTE) & TargetValue;
spiHdr.dwBufLen = 2;
spiHdr.dwBytesIn = 0;
spiHdr.dwFlags = SPIHDR_PREPARE;
spiHdr.bAsync = FALSE;

if (SpiWrite(g_hSpi, &spiHdr))
{
DEBUGMSG(ZONE_TEST, (TEXT("SpiWrite command=%x,rx_data=%x:"), CMD, TargetValue));
}
else
{
RETAILMSG(1, (TEXT("TscLib:SpiWrite Failed\r\n")));
}

RELEASEMUTEX();

return TRUE;
}请问:这个函数是往16BIT的寂存器写入16BIT的数据,请问我现在想往8BIT的寂存器写入8BIT的数据要怎么修改这个函数呀?
...全文
120 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shellgo 2010-11-06
  • 打赏
  • 举报
回复
BOOL TSC2100WriteReg(UCHAR targetReg, UCHAR newValue)
{

UCHAR TargetValue = newValue;
UCHAR CMD = TSC2100_WRITE | targetReg;
SPIHDR spiHdr;

GRABMUTEX();
DEBUGMSG(ZONE_TEST, (TEXT("WriteReg COMMAND=%x: VALUE= %x\r\n"), CMD, newValue));

memcpy(spiHdr.Cmd, &CMD, 1);
//*(USHORT *)spiHdr.Cmd = TSC2100_WRITE|targetReg;
spiHdr.dwCmdLen = 1;
spiHdr.pDataBuf = (LPBYTE) & TargetValue;
spiHdr.dwBufLen = 1;
spiHdr.dwBytesIn = 0;
spiHdr.dwFlags = SPIHDR_PREPARE;
spiHdr.bAsync = FALSE;

if (SpiWrite(g_hSpi, &spiHdr))
{
DEBUGMSG(ZONE_TEST, (TEXT("SpiWrite command=%x,rx_data=%x:"), CMD, TargetValue));
}
else
{
RETAILMSG(1, (TEXT("TscLib:SpiWrite Failed\r\n")));
}

RELEASEMUTEX();

return TRUE;
}

类似改改,但估计会牵涉到别的函数,ushort是2个字节;uchar是一个字节了,
licaiyuren 2010-11-05
  • 打赏
  • 举报
回复
SPI......

怎么还这么麻烦啊。。。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧