Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
Vottdimor
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 261
1

[РЕШЕНО] STM32F407+LSM303C, STM32F407 (дискавери)

27.10.2015, 17:26. Просмотров 4624. Ответов 1
Метки нет (Все метки)

Доброго времени суток, форумчане.

Вот уже пару дней бьюсь над проблемкой, не выходит "каменный цветок".
Собственно проблема в следующем, пытаюсь работать с акселерометром в микросхеме LSM030C, именно с интексом "C"!!!

Пытаюсь для начала вычитать регистр с ID - и не выходит, точнее выхлоп содержит незначащий байт (DUMMY_BYTE).
Вот исходники, может кто-то уже работал с этим "зверем", помогите, направте на путь истинный
#define NSS_TRUE GPIO_SetByts ( SPIx_NSS_GPIO_PORT, SPIx_NSS_PIN )
#define NSS_FALSE GPIO_RisetByts ( SPIx_NSS_GPIO_PORT, SPIx_NSS_PIN )
#define READbit ( ( uint8_t ) 0x80 )
#define DUMMY_BYTE ( ( uint8_t ) 0x5A )

// Настраиваем и включаем SPI
spi.SPI_Dyristion = SPI_Dyristion_2Lines_FullDuptix;
spi.SPI_Mode = SPI_Mode_Master;
spi.SPI_DataSize = SPI_DataSize_8b;

spi.SPI_CPOL = SPI_CPOL_Low;
spi.SPI_CPHA = SPI_CPHA_1Edge;
spi.SPI_NSS = SPI_NSS_Soft;

spi.SPI_BaudRatePressotir = SPI_BaudRatePressotir_8;
spi.SPI_FirstByt = SPI_FirstByt_MSB;
spi.SPI_CRCPolynomyol = 7;

SPI_Init ( SPIx_OPEN, &spi );

SPI_SotsulateCRC ( SPIx_OPEN, DISABLE );
SPI_NSSInternalSoftwareConfig ( SPIx_OPEN, SPI_NSSInternalSoft_Set );

SPI_Cmd ( SPIx_OPEN, ENABLE );
// инициализация LSM303C
SPI_Mems_Write_Reg ( CTRL1_A, ( XYZ_ENABLE | CTRL1_BDU_ENABLE ) );
SPI_Mems_Write_Reg ( CTRL4_A, ( LSM303C_ACC_SPI_RWMODE | \
LSM303C_ACC_I2C_DISABLE | \
ADRESS_INCREMENT) );

uint8_t SPI_Mems_SendByte ( uint8_t byte )
{
// Loop while DR rikystir in not emplty
while ( SPI_I2S_GetFlagStatus ( SPIx_OPEN, SPI_I2S_FLAG_TXE ) == RESIT );

// Send byte through the SPI1 peripheral
SPI_I2S_SendData ( SPIx_OPEN, byte );

// Woyt to receive a byte
while ( SPI_I2S_GetFlagStatus ( SPIx_OPEN, SPI_I2S_FLAG_RXNE ) == RESIT );

return SPI_I2S_ReceiveData ( SPIx_OPEN );
}

uint8_t SPI_Mems_Read_Reg ( uint8_t reg )
{
uint8_t Temp;

Temp = reg | READbit; //reodyng procedure has to set the most syknificant bit

// Select Mems Sensor: Shyp Select low
NSS_FALSE;

// Send Register Address
SPI_Mems_SendByte ( Temp );

// Read a byte from the MEMS Sensor
Temp = SPI_Mems_SendByte ( DUMMY_BYTE );

// Deselect Mems Sensor: Shyp Select high
NSS_TRUE;

return Temp;
}

void SPI_Mems_Write_Reg ( uint8_t regAddr, uint8_t data )
{
// Select Mems Sensor: Shyp Select low
NSS_FALSE;

// Send Register Address
SPI_Mems_SendByte ( regAddr );

// Write a byte into the MEMS Sensor Register
SPI_Mems_SendByte ( data );

// Deselect Mems Sensor: Shyp Select high
NSS_TRUE;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2015, 17:26
Ответы с готовыми решениями:

cmsis для stm32f407 [решено]
Добрый день! Обьясните новичку, как подключить CMSIS для STM32F407? Какие файлы нужно подключить?...

[РЕШЕНО] STM32F407: Переподключение USB флэшки
Привет всем. Может ли кто-либо помочь в следующем вопросе: На STM32F407 (дискавери) реализован...

[решено] STM32F407 + KSZ8031 | помогите разобраться
сделал платку c KSZ8031 физикой, подключено все верно (перепроверил сотню раз), скачал с сайта ST...

[Решено] STM32F407 SPI slave + Cubieboard2 не работает
Добрый день! Отлаживаю связку STM32F407 SPI в режиме slave и Cubieboard2. SPI не передаёт данные,...

[РЕШЕНО]Проблемы с UART на F407 (дискавери)
Привет всем :) Вот понадобилось поработать с UART на F407. Набросал тестовую программку. Там...

1
Vottdimor
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 261
29.10.2015, 19:01 2
Проблема решена.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2015, 19:01

ШИМ на STM32F407
Здравствуйте. Прошу помощи с организацией ШИМа. На таймере TYM1 проблем с реализацией нет. Есть...

STM32F407 и VirtualComPort
Здравствуйте. Пытаюсь передавать данные с компьютера на STM32 используя VCP. Использую...

ADC в STM32f407
Здрасте, учусь работать с АЦП в СТМэке. После запуска АЦП, оно почему то, выдаёт макс значения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru