سلام خدمت همه ی اساتید عزیز
من می خوام سنسور ADXL345 رو با SPI به کمک کتابخونه های CMSIS بخونم ولی وقتی برناممو با اسیلوسکوپ چک می کنم SCK میکرو فرکانس تولید نمی کنه.
ممنون
من می خوام سنسور ADXL345 رو با SPI به کمک کتابخونه های CMSIS بخونم ولی وقتی برناممو با اسیلوسکوپ چک می کنم SCK میکرو فرکانس تولید نمی کنه.
#include "lpc17xx_spi.h"
#include "lpc17xx_libcfg_default.h"
#include "lpc17xx_pinsel.h"
#include "debug_frmwrk.h"
#include "lpc17xx_gpio.h"
#define SPI_DATABIT_SIZE 16
#define RA_DEVID 0x00 // R 0xE5 Device ID
void Delay (uint32_t Time)
{
uint32_t i;
i = 0;
while (Time--) {
for (i = 0; i < 5000; i++);
}
}
SPI_CFG_Type SPI_ConfigStruct;
//SPI_CFG_Type SPI_InitStruct;
int main(void)
{
PINSEL_CFG_Type PinCfg;
SPI_DATA_SETUP_Type xferConfig;
PinCfg.Funcnum = 3;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Portnum = 0;
PinCfg.Pinnum = 15;
PINSEL_ConfigPin(&PinCfg);
PinCfg.Pinnum = 17;
PINSEL_ConfigPin(&PinCfg);
PinCfg.Pinnum = 18;
PINSEL_ConfigPin(&PinCfg);
PinCfg.Pinnum = 16;
PinCfg.Funcnum = 0;
PINSEL_ConfigPin(&PinCfg);
SPI_ConfigStruct.CPHA = SPI_CPHA_SECOND;
SPI_ConfigStruct.CPOL = SPI_CPOL_LO;
SPI_ConfigStruct.ClockRate = 3200;
SPI_ConfigStruct.DataOrder = SPI_DATA_MSB_FIRST;
SPI_ConfigStruct.Databit = SPI_DATABIT_SIZE;
SPI_ConfigStruct.Mode = SPI_MASTER_MODE;
// SPI_ConfigStructInit(SPI_InitStruct);
SPI_Init(LPC_SPI, &SPI_ConfigStruct);
SPI_SetClock(LPC_SPI,3200);
SPI_IntCmd(LPC_SPI,ENABLE);
GPIO_SetDir(0,(1<<16),1);
GPIO_ClearValue(0,(1<<16));
while(1)
{
SPI_SendData(LPC_SPI,0x01);
}
}
فرکانس SPI رو می خوام 3200 هرتز کنم.اگه مشکلی تو config دارم بهم بگین چون تو آرم تازه کارم و اولین باره دارم SPI رو راه اندازی می کنم.#include "lpc17xx_libcfg_default.h"
#include "lpc17xx_pinsel.h"
#include "debug_frmwrk.h"
#include "lpc17xx_gpio.h"
#define SPI_DATABIT_SIZE 16
#define RA_DEVID 0x00 // R 0xE5 Device ID
void Delay (uint32_t Time)
{
uint32_t i;
i = 0;
while (Time--) {
for (i = 0; i < 5000; i++);
}
}
SPI_CFG_Type SPI_ConfigStruct;
//SPI_CFG_Type SPI_InitStruct;
int main(void)
{
PINSEL_CFG_Type PinCfg;
SPI_DATA_SETUP_Type xferConfig;
PinCfg.Funcnum = 3;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Portnum = 0;
PinCfg.Pinnum = 15;
PINSEL_ConfigPin(&PinCfg);
PinCfg.Pinnum = 17;
PINSEL_ConfigPin(&PinCfg);
PinCfg.Pinnum = 18;
PINSEL_ConfigPin(&PinCfg);
PinCfg.Pinnum = 16;
PinCfg.Funcnum = 0;
PINSEL_ConfigPin(&PinCfg);
SPI_ConfigStruct.CPHA = SPI_CPHA_SECOND;
SPI_ConfigStruct.CPOL = SPI_CPOL_LO;
SPI_ConfigStruct.ClockRate = 3200;
SPI_ConfigStruct.DataOrder = SPI_DATA_MSB_FIRST;
SPI_ConfigStruct.Databit = SPI_DATABIT_SIZE;
SPI_ConfigStruct.Mode = SPI_MASTER_MODE;
// SPI_ConfigStructInit(SPI_InitStruct);
SPI_Init(LPC_SPI, &SPI_ConfigStruct);
SPI_SetClock(LPC_SPI,3200);
SPI_IntCmd(LPC_SPI,ENABLE);
GPIO_SetDir(0,(1<<16),1);
GPIO_ClearValue(0,(1<<16));
while(1)
{
SPI_SendData(LPC_SPI,0x01);
}
}
ممنون
دیدگاه