Например TDA7294

Форум РадиоКот • Просмотр темы - STM32F4discovery
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт янв 01, 2026 17:22:44

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32F4discovery
СообщениеДобавлено: Ср сен 17, 2014 21:47:02 
Первый раз сказал Мяу!

Зарегистрирован: Ср сен 17, 2014 21:43:30
Сообщений: 21
Рейтинг сообщения: 0
Здоров народ! у меня STM32F4DISCOVERY и вот программка типа
#include "stm32f4xx.h"
#include "stm32f4xx_spi.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_gpio.h"

int main(void)
{
uint8_t date= 0;
//PortD
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOE, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
GPIO_InitTypeDef port;
port.GPIO_Mode=GPIO_Mode_OUT;
port.GPIO_OType=GPIO_OType_PP;
port.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
port.GPIO_PuPd=GPIO_PuPd_NOPULL;
port.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_Init(GPIOD, &port);

//PortE
GPIO_InitTypeDef portE;
portE.GPIO_Mode=GPIO_Mode_OUT;
portE.GPIO_OType=GPIO_OType_PP;
portE.GPIO_Pin=GPIO_Pin_3;
portE.GPIO_PuPd=GPIO_PuPd_NOPULL;
portE.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &portE);

//PortA
GPIO_InitTypeDef portA;
portA.GPIO_Mode=GPIO_Mode_AF;
portA.GPIO_OType=GPIO_OType_PP;
portA.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
portA.GPIO_PuPd=GPIO_PuPd_DOWN;
portA.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &portA);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_SPI1);

// PortSPI1
SPI_InitTypeDef PortSPI1;
PortSPI1.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_64;
PortSPI1.SPI_CPHA=SPI_CPHA_2Edge;
PortSPI1.SPI_CPOL=SPI_CPOL_High;
PortSPI1.SPI_CRCPolynomial= 7;
PortSPI1.SPI_DataSize=SPI_DataSize_8b;
PortSPI1.SPI_Direction=SPI_Direction_2Lines_FullDuplex;
PortSPI1.SPI_FirstBit=SPI_FirstBit_MSB;
PortSPI1.SPI_Mode=SPI_Mode_Master;
PortSPI1.SPI_NSS=SPI_NSS_Soft;
SPI_Init(SPI1, &PortSPI1);
SPI_Cmd(SPI1, ENABLE);

//READ DATE
GPIO_ResetBits(GPIOE, GPIO_Pin_3);
SPI_I2S_ClearFlag(SPI1, SPI_I2S_FLAG_BSY);
SPI_I2S_SendData(SPI1, 0x23);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY)==SET);
SPI_I2S_ClearFlag(SPI1, SPI_I2S_FLAG_BSY);
SPI_I2S_SendData(SPI1, 0xa3);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY)==SET);
SPI_I2S_ClearFlag(SPI1, SPI_I2S_FLAG_BSY);
GPIO_SetBits(GPIOE, GPIO_Pin_3);

//SEND DATE
GPIO_ResetBits(GPIOE, GPIO_Pin_3);
SPI_I2S_ClearFlag(SPI1, SPI_I2S_FLAG_BSY);
SPI_I2S_SendData(SPI1, 0xa3);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY)==SET);
SPI_I2S_ClearFlag(SPI1, SPI_I2S_FLAG_BSY);
SPI_I2S_SendData(SPI1, 0x00);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY)==SET);
SPI_I2S_ClearFlag(SPI1, SPI_I2S_FLAG_BSY);
GPIO_SetBits(GPIOE, GPIO_Pin_3);
date = SPI_I2S_ReceiveData(SPI1);

if(date== 0x00){
GPIO_SetBits(GPIOD, GPIO_Pin_12);

} else {
GPIO_SetBits(GPIOD, GPIO_Pin_14);
}

while(1)
{

}
}
все прошивается на ура , вроде все тип топ , как я понимаю я записал там в акселерометр по адресу 0x23 байт 0xa3 . вот в цикле if как я понимаю должен загораться красный светодиод но он, выдает пустоту. подскажите в чем я ошибся PLEASE .


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y