看你用它来干什么了,adxl345功能很强大,内置很多寄存器,我现在的毕设就用它来做个计步器。
我用的是51单片机控制adxl345用IIC通信。adxl345工作电源可以选择单/双电源模式,额定电压大约3.3V,而51单片机用的是5V电压,需要电压转换模块,自己焊起来比较烦,我在网上花23块大洋(运费12)买了锋模缺adxl345模块,已经把电压转成3.3V了,可以直接用。各个引脚如下图:
与单片机连法:第一张图右侧,5V脚高电平、 GND直接地 、3V3、VS、CS不用连,因为模块内部已经连好了。第一张图左侧,SCL、SDA分别与51单片机某一脚相连,SCL模拟时钟信号,SDA传数据(I2C通信)。SDO不用连,如果使用中断银辩的话INT1、INT2分别码盯与单片机的INT0、INT1相连。
ADXL345使用独立5v电源 SPI方式可以并笑消参考ti例子因为初始化是固定的呀比如
//******************************************************************************
// MSP-FET430P140 Demo - USART0, SPI Full-Duplex 3-Wire Slave P1.x Exchange
//
// Description: SPI Master communicates at fast as possible, full-duplex with
// SPI Slave using 3-wire mode. The level on P1.4/5 is TX'ed and RX'ed to P1.0
// and P1.1. Master will pulse slave Reset on init to insure synch start.
// Slave normal mode is LPM4.
// ACLK = n/a, MCLK = SMCLK = DCO ~ 800kHz, ULCK = external
/升数/
// fet140_slav0 fet140_mstr0
// MSP430F169 Slave MSP430F169 Master
// ----------------- -----------------
//| XIN|-/|\| XIN|-
//| | | | |
//| XOUT|- --|RST XOUT|-
//| | /|\| |
//| RST|--+<----|P3.0 |
// LED <-|P1.0 || P1.4|<-
// LED <-|P1.1 || P1.5|<-
// ->|P1.4 || P1.0|->LED
// ->|P1.5 || P1.1|->LED
//| SIMO0/P3.1|<-------|P3.1 |
//| SOMI0/P3.2|------->|P3.2 |
//|UCLK/P3.3|<-------|P3.3 |
//
// M. Buccini
// Texas Instruments Inc.
// Feb 2005
/绝知/ Built with IAR Embedded Workbench Version: 3.21A
//******************************************************************************
#include <msp430x14x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD// Stop watchdog
P1OUT = 0x00// P1.0 setup for LED output
P1DIR |= 0x03
P3SEL |= 0x0E // P3.1,2,3 SPI option select
U0CTL = CHAR + SYNC + SWRST // 8-bit, SPI
U0TCTL = CKPL + STC // Polarity, 3-wire
U0BR0 = 0x02// SPICLK = SMCLK/2
U0BR1 = 0x00
U0MCTL = 0x00
ME1 |= USPIE0 // Module enable
U0CTL &= ~SWRST // SPI enable
IE1 |= URXIE0 + UTXIE0 // RX and TX interrupt enable
_BIS_SR(LPM4_bits + GIE)// Enter LPM4 w/ interrupt
}
#pragma vector=USART0RX_VECTOR
__interrupt void SPI0_rx (void)
{
P1OUT = RXBUF0 // RXBUF0 to TXBUF0
}
#pragma vector=USART0TX_VECTOR
__interrupt void SPI0_tx (void)
{
unsigned int i
i = P1IN
i = i >>4
TXBUF0 = i // Transmit character
}
知识豪杰,快来加入430f149团队吧,一起答疑助人,没你不行!团队地址:http://zhidao.baidu.com/team/view/430f149
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)