历史上的今天
今天是:2025年03月24日(星期一)
2020年03月24日 | MSP430 SPI硬件接口
2020-03-24 来源:eefocus
所使用的为MSP430F5438,比较老的一款单片机了。不过它的串口还是比较多,所以本人还是比较喜欢。
在使用SPI硬件接口的时候,初始化程序代码:
void halCom3Init(void)
{
unsigned char Data[3];
P3SEL |= (BIT0+BIT4+BIT5);
P3DIR |= BIT3;
UCA0CTL1 |= UCSWRST; // **Put state machine in reset**
UCA0CTL0 |= UCMST+UCSYNC+UCCKPH+UCCKPL+UCMSB; // 3-pin, 8-bit SPI master+UCCKPL
// Clock polarity high, MSB
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 0x04; // /2
UCA0BR1 = 0; //
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
// UCA0IE |= UCRXIE; // Enable USCI_B0 RX interrupt
}
通常时序由UCCKPH和UCCKPL来控制,具体可参看USER'S GUIDE。实际调试的时候,CLK下降沿或上升沿和DATA的转变时间几乎重合,导致硬件SPI接口不好使。
改用软件模拟SPI接口后,感觉很稳定。具体时序可参照所通信的器件的时序图来调整。
//****************************************模拟SPI实现DAC8734基本写操作
void DAC8734_Write(UCHAR txdata)
{
UCHAR i;
SETCLK;
for(i=0;i<8;i++)
{
SETCLK;
if(0x80&txdata)
SETSDI;
else CLRSDI;
_NOP();
CLRCLK;
txdata<<=1;
}
SETCLK;
}
//****************************************模拟SPI实现写8734命令字
void DAC8734WriteReg(UCHAR* Dat)
{
CLRCS;
_NOP();
DAC8734_Write(Dat[0]);
DAC8734_Write(Dat[1]);
DAC8734_Write(Dat[2]);
SETCS;
_NOP();
}
史海拾趣
|
简介: 内容简介: 本书主要介绍数字信号处理的基础理论,并给出300多道解答步骤完整的习题。因而,本书是相关教材的有益补充,是自学有效问题求解方法的理想读物。 全书共9章,涵盖了数字信号处理导论教程的核心内容,包括数字信号处 ...… 查看全部问答> |
|
小弟初学嵌入式,最近想在一个RTOS上开发一个小的系统,初步考虑是最简单的μCOS-Ⅱ,但是由于苦于无人指导,甚至都不知道其模拟软件开发环境及其对硬件环境的要求,在网上查了一下,好像说用Borland C 4.5可以,但是好像那是一个C语言的编 ...… 查看全部问答> |
|
我是嵌入式系统专业的大学生,大学混了2年半,时间很快,今年6月份就要毕业了,我的大学生活每天基本都在寝室渡过的,因为有宽带,网速也过得去,玩魔兽世界,梦幻,玩dota,cs,war3,劲舞团,一个星期也 ...… 查看全部问答> |
|
调试出现:chosen derivative (msp430f133) and actual hardware(device unknown) do not match. 大致的意思是说:选择的器件型号和实际硬件不匹配。 可是在IAR的环境里我选择的是MSP430F133,本人目标系统用的片子也是msp430f133。 用的仿真器 ...… 查看全部问答> |
|
LM3S6911最近一直很缺货的 因为原厂晶圆供应不足 从而导致的缺货 我们公司同样用LM3S6911做了一个uart转以太网接口的产品 当时也是急疯了 因为我们一直有做TI的电子元器件贸易 跟原厂有联系 所以方案就一直没有更换 现在好了, 货终于到了 ...… 查看全部问答> |
|
如题,本人参加了成都的某机构嵌入式培训,现在就业困难啊。请大家支招。 本人在学校期间在电子实验室呆了3年,做过大量的单片机项目,会上位机开发。linux相关知识在培训期间习得。… 查看全部问答> |




