打印

模拟SPI通讯

[复制链接]
642|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yszong|  楼主 | 2018-10-20 12:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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| | 2018-10-20 12:59 | 只看该作者
片选端呢?

使用特权

评论回复
板凳
jiaxw| | 2018-10-20 13:03 | 只看该作者
SPI和什么通信或者操作什么?建议楼主补充说明下。

使用特权

评论回复
地板
午夜粪车| | 2018-10-20 13:06 | 只看该作者

ps:你这什么都不说,换别人看都懒得看你的程序

使用特权

评论回复
5
zhaoxqi| | 2018-10-20 13:08 | 只看该作者


楼上说的是正理。
一般SPI和IIC等通讯,重点要关注时序

使用特权

评论回复
6
jiajs| | 2018-10-20 13:11 | 只看该作者
建议楼主用示波器或者逻辑分析仪看看时序

使用特权

评论回复
7
jlyuan| | 2018-10-20 13:14 | 只看该作者
也没有看明白楼主要说明什么意思呢
你是程序编译不过去呢?还是?

使用特权

评论回复
8
dengdc| | 2018-10-20 13:18 | 只看该作者
spi是有读取时间的,不能太快的。

使用特权

评论回复
9
jiahy| | 2018-10-20 13:21 | 只看该作者
模拟SPI总线的作用是非常大的,跟外接设备通讯也是非常方便的

使用特权

评论回复
10
lizye| | 2018-10-20 13:24 | 只看该作者

速度太快了!
spi是有读写速度限制的。

使用特权

评论回复
11
yszong|  楼主 | 2018-10-20 13:28 | 只看该作者
非常感谢大家的帮助 问题已经解决了 确实是太快了 我把主频从8M变成1M以后就好了 我做的这个项目是MSP430F2132与UZ2400通讯

使用特权

评论回复
12
Mattheww| | 2018-10-23 22:27 | 只看该作者
主频降下来就好了

使用特权

评论回复
13
Thorald| | 2018-10-24 21:01 | 只看该作者
一般SPI通讯,要重点关注时序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝