完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现在的问题是当我要去读ADXL362时,先片选,但是一片选,430的SIMO口的电压就被拉高,但是它能在SMCLK时钟下发送正确的信号。程序如下,新生请谅解。我还附件了时钟与主机输出信号图,还有一张是片选和主机输出信号图。
#include #define CPU_F ((double)8000000) #define delay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0)) void Init_CLK(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT unsigned int i; BCSCTL1 &=~XT2OFF; do { IFG1 &=~OFIFG; for(i=0xFF;i>0;i--); } while((IFG1 & OFIFG)); BCSCTL2 |=0x8B; } void UCB0_SPI(void) //UCB0 SPI配置 { P5SEL |=0x0E; //选择口5.1,5.2,5.3 U1CTL |= SWRST; U1CTL |= CHAR + SYNC + MM + SWRST; // 8-bit, SPI, Master U1TCTL |= CKPH + SSEL1 + STC; // Polarity, SMCLK, 3-wire U1BR0 = 0x02; // SPICLK = SMCLK/2 U1BR1 = 0x00; U1MCTL = 0x00; ME2 |= USPIE1; // Enable USART1 SPI mode U1CTL &= ~SWRST; } unsigned char ADXL_SPI_read() { unsigned char k; P2DIR |=0x08; P2OUT &=~0x08; TXBUF1=0x0B; while (!(IFG2 & UTXIFG1)); TXBUF1=0x00; while (!(IFG2 & UTXIFG1)); TXBUF1=0xFF; while (!(IFG2 & UTXIFG1)); k=RXBUF1; P2OUT|=0x08; return k; } void main(void) { P5SEL |=BIT5; P5DIR |=BIT5; Init_CLK(); UCB0_SPI(); while(1) { P2DIR |=0X10; P2OUT ^=0X10; ADXL_SPI_read(); delay_ms(5); |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
213 浏览 0 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1299 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1896 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4237 浏览 2 评论
8995 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1421浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1645浏览 2评论
1615浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1299浏览 2评论
213浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 14:01 , Processed in 0.894372 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号