g2553 launchpad spi 与12位DA通信。。。求高手指点

2019-03-24 13:34发布

spi8位的  能不能分两次发送 跟DA通信。。。我自己做的时候示波器上看到波形 没啥问题 不过就是不出数据。。。设置的是DA的B路输出,结果AB两路都有输出,应该是乱码了。          求高手指点一二。。。。。。

高手快出现!!!!!!!!!!!!!!!!!!!!!!!!
我使用的是launchpad msp430g2553 ,想用8bit的16bit的tlv5618 通过串口通信
中断里面是这么写的
{
set_cs;           //DA要求cs高无效
count = (count++)%256;  //正弦表累加
IE2 &= ~UCA0TXIE;     //关中断,以免高位数据发完后中断
UCA0TXBUF =  sindata_h[count]|0x40;   发送高位数据16位中最高4位是命令  sindata数据都小于0x0fff
clr_cs;     //cs低有效
while(!UCA0TXIFG);          //高8位发送完毕
UCA0TXBUF =  sindata_l[count];        //发送低8位
IE2 |= UCA0TXIE;           //开中断   发送完成后进入循环
}
DA 没有输出  检查各个端口波形看起来都正常。
软件模拟16bit  spi  可以输出波形。

[ 本帖最后由 宇文玉骢 于 2012-8-8 17:05 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
宇文玉骢
2019-03-25 06:38
我使用的是launchpad msp430g2553 ,想用8bit的16bit的tlv5618 通过串口通信
8bit  模拟16bit

中断里面是这么写的
{
set_cs;           //DA要求cs高无效
count = (count++)%256;  //正弦表累加
IE2 &= ~UCA0TXIE;     //关中断,以免高位数据发完后中断
UCA0TXBUF =  sindata_h[count]|0x40;   发送高位数据16位中最高4位是命令  sindata数据都小于0x0fff
clr_cs;     //cs低有效
while(!UCA0TXIFG);          //高8位发送完毕
UCA0TXBUF =  sindata_l[count];        //发送低8位
IE2 |= UCA0TXIE;           //开中断   发送完成后进入循环
}

DA 没有输出  检查各个端口波形看起来都正常。
软件直接模拟16bit  spi  可以输出波形。

一周热门 更多>

相关问题

    相关文章