模拟SPI通讯

[复制链接]
564|10
 楼主| yszong 发表于 2016-8-21 16:33 | 显示全部楼层 |阅读模式
msp430f2132  求高手看哪错了?
#define UZ2400_MOSI_bit     BIT1
#define UZ2400_SPI_CLK_bit  BIT3
void WriteSPIData(unsigned char data)
{
    unsigned char i;
    for(i=0;i<8;i++)
    {
        if(data&0x80)
        {
            P3OUT|=UZ2400_MOSI_bit;
        }
        else
        {
            P3OUT&=~UZ2400_MOSI_bit;
        }
        P3OUT|=UZ2400_SPI_CLK_bit;
        data<<=1;
        P3OUT&=~UZ2400_SPI_CLK_bit;
    }
}
void WriteSPIDatal(unsigned int data)
{
    unsigned char i;
    for(i=0;i<8;i++)
    {
        if(data&0x80)
        {
            P3OUT|=UZ2400_MOSI_bit;
        }
        else
        {
            P3OUT&=~UZ2400_MOSI_bit;
        }
        P3OUT|=UZ2400_SPI_CLK_bit;
        data<<=1;
        P3OUT&=~UZ2400_SPI_CLK_bit;
    }
}
unsigned char ReadSPIData()
{
unsigned char data,i;
for(i=0;i<8;i++)
{
  data<<=1;
  P3OUT|=UZ2400_SPI_CLK_bit;
  if(0x04 & P3IN)data|=0x01;
  P3OUT&=~UZ2400_SPI_CLK_bit;
}
return data;
}
shimx 发表于 2016-8-21 16:35 | 显示全部楼层
片选端呢?
jiaxw 发表于 2016-8-21 16:36 | 显示全部楼层
SPI和什么通信或者操作什么?建议楼主补充说明下。
午夜粪车 发表于 2016-8-21 16:38 | 显示全部楼层
ps:你这什么都不说,换别人看都懒得看你的程序
zhaoxqi 发表于 2016-8-21 16:39 | 显示全部楼层

楼上说的是正理。
一般SPI和IIC等通讯,重点要关注时序
jiajs 发表于 2016-8-21 16:41 | 显示全部楼层
建议楼主用示波器或者逻辑分析仪看看时序
jlyuan 发表于 2016-8-21 16:44 | 显示全部楼层
也没有看明白楼主要说明什么意思呢
你是程序编译不过去呢?还是?
dengdc 发表于 2016-8-21 16:45 | 显示全部楼层
spi是有读取时间的,不能太快的。
jiahy 发表于 2016-8-21 16:46 | 显示全部楼层
模拟SPI总线的作用是非常大的,跟外接设备通讯也是非常方便的
lizye 发表于 2016-8-21 16:47 | 显示全部楼层
速度太快了!
spi是有读写速度限制的。
 楼主| yszong 发表于 2016-8-21 16:49 | 显示全部楼层
非常感谢大家的帮助 问题已经解决了 确实是太快了 我把主频从8M变成1M以后就好了 我做的这个项目是MSP430F2132与UZ2400通讯
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部