历史上的今天
返回首页

历史上的今天

今天是:2025年01月14日(星期二)

正在发生

2021年01月14日 | MSP430F249—SPI主从机通信

2021-01-14 来源:eefocus

1。主机发送读取

/******************************************************************
**                                                       
**  File : SPI.c     | Master Send |                                    
**  Version : 1.0     
** Description : SPI Master Send and Receive                                                                       
**  Author : LightWu                              
**  Date : 2013-4-16                                                       
**                                                   
*******************************************************************/


#include "MSP430x24x.h"


unsigned char Data1;




void Delay(void)
{
  int m;
  for(m=5000;m>0;m--);
}


void SpiInit(void)
{
    P3SEL |= 0x0E;                            // P3.3,2,1 USCI_B0 option select,注意管脚配置
    P3DIR |= 0x01;                            // P3.0 output direction
    UCB0CTL0 |= UCCKPH + UCMSB + UCMST + UCSYNC;       // 3-pin, 8-bit SPI mstr, MSB 1st
    UCB0CTL1 |= UCSSEL_2;                     // SMCLK
    UCB0BR0 = 0x02;
    UCB0BR1 = 0;
    UCB0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
    
    IE2 |= UCB0RXIE;            // 打开接收中断
}






void main(void)
{
        // Stop watchdog timer to prevent time out reset
        WDTCTL = WDTPW + WDTHOLD;       //关狗


        SpiInit();
        
     
        while(1)
        {
                //Data1 = TLC549Read();
            
                //注意需要加延时
                Delay();
                
                P3OUT &= ~0x01;                         // Enable TLC549, /CS reset
            
                UCB0TXBUF = 0x55;                     // Transmit first character


                _BIS_SR(LPM0_bits + GIE);                 // CPU off, enable interrupts
            
                
        }
        


}


#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCIA0RX_ISR (void)
{
        Data1 = UCB0RXBUF;                       // data = 00|DATA
        
        P3OUT |= 0x01;                          // Disable TLC549, /CS set
        
        __bic_SR_register_on_exit(LPM0_bits);        // Exit LPM0
}   



2.从机接收发送

/******************************************************************
**                                                       
**  File : SPI.c     | Slave Receive and Send |                                    
**  Version : 1.0     
** Description : SPI Slave Receive and Send                                                                      
**  Author : LightWu                              
**  Date : 2013-4-16                                                       
**                                                   
*******************************************************************/
#include




int main(void)
{
  volatile unsigned int i;


  WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
                                            // it is not yet in SPI mode
  P3SEL |= 0x0E;                            // P3.3,2,1 option select
  UCB0CTL1 = UCSWRST;                       // **Put state machine in reset**
  UCB0CTL0 |= UCCKPH + UCSYNC+UCMSB;          //3-pin, 8-bit SPI master
  UCB0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCB0RXIE;                          // Enable USCI_B0 RX interrupt


  _BIS_SR(LPM3_bits + GIE);                 // Enter LPM4, enable interrupts
}


// Echo character
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCIB0RX_ISR (void)
{
  while (!(IFG2 & UCB0TXIFG));              // USCI_B0 TX buffer ready?
  UCB0TXBUF = UCB0RXBUF;
}


推荐阅读

史海拾趣

EFINIX公司的发展小趣事

随着中国电子行业的快速发展,EFINIX公司看到了巨大的市场潜力。公司积极拓展中国市场,与中国本土企业展开合作,推动Quantum™可编程加速器技术和Trion FPGA产品在中国市场的应用。EFINIX公司的产品和服务得到了中国客户的广泛认可,为中国电子行业的发展做出了积极贡献。

Euroquartz公司的发展小趣事

Euroquartz自创立之初,就将产品质量和客户满意度置于公司运营的核心。为了确保这一点,公司引入了完整的AS9100 Rev D质量体系,并通过了相应的认证。这一体系要求Euroquartz在制造程序和可追溯性方面保持完整的记录,审批机关会定期进行审核,确保品质始终如一。这种对品质的执着追求,为Euroquartz赢得了客户的信赖,也为公司的发展奠定了坚实的基础。

意普(ESPE)公司的发展小趣事

意普(ESPE)公司成立于XXXX年,初期专注于光电保护技术的研发。在创始人XXX的领导下,公司凭借对光电技术的深入理解和创新,成功研发出首款红外线安全保护装置,并在行业内获得了广泛的认可。这一技术的突破不仅为公司赢得了市场份额,也为后续的发展奠定了坚实的基础。

Highland Electronics Co Ltd公司的发展小趣事

High Tech Chips Inc成立之初,便专注于研发高性能的AI芯片。在公司创始人李博士的带领下,团队突破了传统芯片设计的瓶颈,开发出了一款具有超低功耗和高效能比的AI加速器芯片。这款芯片迅速获得了市场的认可,被广泛应用于智能手机、智能家居和自动驾驶等领域。随着技术的不断迭代和产品的持续优化,High Tech Chips Inc逐渐在AI芯片市场占据了一席之地,并成为了行业内的技术领先者。

Charcroft Electronics Ltd公司的发展小趣事

在电子行业的早期,Charcroft Electronics Ltd公司以其对新兴技术的敏锐洞察力和创新研发能力脱颖而出。公司不断投入研发资源,开发出一系列具有竞争力的电子元器件产品,这些产品以其优异的性能和稳定性赢得了市场的广泛认可。同时,公司还积极与高校和研究机构合作,共同探索新的技术应用领域,为公司的长远发展奠定了坚实的基础。

Advanced Energy公司的发展小趣事

AE公司一直将创新作为企业发展的核心动力。公司不断投入研发资源,推动电源技术的持续创新。同时,AE公司也积极与各大电子企业建立合作伙伴关系,共同推动电子行业的发展。通过与合作伙伴的紧密合作,AE公司不仅获得了更多的市场机会,也提升了自身的技术水平和创新能力。

问答坊 | AI 解惑

PLC入门学习基础教程

PLC入门学习基础教程.zip…

查看全部问答>

谁能提供一段完整简单的PIC16F73的汇编或C源代码

第一次使用PIC16F73。很简单,就是在B口的第二位输出高电平就可以了。必须要调试通过的哟。 还问一个问题: 在单片机的输出管脚上如果没有接负载,使用程序输出1,就可以使用万用表量到高电平吗?…

查看全部问答>

无法加载NK.NB0

我用的是刷卡的方式加载NK.NB0. 为什么我编译生成的NK.NB0  BOOT引导无法识别和加载 串口打印信息如下。 System ready! Preparing for download... Boot Configure is found OEMPredownload... SD card is  inserted, pi ...…

查看全部问答>

wince6的eboot中如何支持文字显示?

一般大家用什么字库,如何使用? 如果屏幕需要旋转,那么又如何显示?…

查看全部问答>

TCPMP全屏自动浏览图片问题

在自己的shell程序下调用tcpmp浏览图片,在全屏模式下slide show,如果从大图片切换到小图片,上一张图片在边缘处上总是会残留,无法完全刷新。但在wince下直接调用tcpmp就是好的。不知道我的init还有哪些地方没有设置正确。请大家帮忙。 下面是我 ...…

查看全部问答>

请问版主,用STM32的硬件编码器如何扩展成32位?

我用STM32的定时器2工作于编码器方式,可以正常得到编码器位置,但由于现在只有16位计数,位数不够,我想扩展到32位,经过试验未能解决,请帮忙提个思路。    一、先用定时器内部连接,将定时器2 的溢出送到定时器3 ...…

查看全部问答>

FPGA最新的研究领域

各位电子爱好者和专家们,想请问你们,FPGA最新的研究领域是什么?在哪些方面可以做出新的突破?谢谢  …

查看全部问答>

向 TI 申请的 M4 板子到 11月初就会拿到了

15号订的,要到11月初才能拿到,难道从美国寄过来? …

查看全部问答>

致电子类专业大学生的一封信

本人是一名普通高校的学生,离毕业不到一个月了,电子信息类专业。在一个普通的城市度过了我四年的大学生活。此时,我正坐在一间即将不属于我的教室里。在此,我将写下这段时间关于专业知识学习的经历与体会,希望能给还有机会在大学继续学习的学生 ...…

查看全部问答>