Например TDA7294

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





Текущее время: Чт апр 18, 2024 05:13:57

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


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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32L476VGT + AT45DB321
СообщениеДобавлено: Пн сен 25, 2017 10:12:38 
Родился

Зарегистрирован: Пт сен 22, 2017 08:16:53
Сообщений: 7
Рейтинг сообщения: 0
void GPIO_and_setting_for_spi1(void)// peredelat na spi1/ pa5 pa6 pa7 ///cs1-pa1 cs2-pa8 cs3-pa9 cs4-pa15
{
RCC->APB2ENR|=RCC_APB2ENR_SPI1EN;
RCC->AHB2ENR|=RCC_AHB2ENR_GPIOAEN|RCC_AHB2ENR_GPIOBEN;

CLEAR_BIT(GPIOA->MODER,0x00005400); //GPIOSPI
GPIOA->AFR[0]|=0x55500000; //

GPIOB->MODER &= ~(1 <<3);//CS
GPIOB->MODER &= ~(1 <<1);

SPI1 -> CR1 = SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_MSTR| SPI_CR1_BR_2;
SPI1 -> CR2 =SPI_CR2_DS_0 | SPI_CR2_DS_1 | SPI_CR2_DS_2 /*| SPI_CR2_FRXTH*/;
SPI1->CR2 |= SPI_CR2_RXNEIE/*|SPI_CR2_TXEIE*/|SPI_CR2_ERRIE ; //????????? ??????????, ???? ?????? ???? ??????


NVIC_EnableIRQ (SPI1_IRQn);
}

uint8_t SPI_SendByte(uint8_t byte)
{while(!READ_BIT(SPI1 -> SR, SPI_SR_TXE));
SPI1->DR = byte;


}

int main(void)
{
__disable_irq (); // GLOBAL INTERRUPT
__enable_irq ();

/*SET_BIT(RCC->CR,RCC_CR_HSION);
SET_BIT(RCC->CFGR,RCC_CFGR_SW_0);
CLEAR_BIT(RCC->CR,RCC_CR_MSION);*/
delay(1000);
GPIO_and_setting_for_spi1();
ADC1_INIT();

SET_BIT(SPI1->CR1,SPI_CR1_SPE);

while (1)
{
delay(100);

/* GPIOB->ODR=0x0;
SPI_SendByte(0xD7);
SPI_SendByte(0x00);

while(READ_BIT(SPI1 -> SR, SPI_SR_BSY));
GPIOB->ODR=0x2; */

GPIOB->ODR=0x0;
SPI_SendByte(0x84);
SPI_SendByte(0x00);
SPI_SendByte(0x0);
SPI_SendByte(0x10);
for(uint8_t q=0; q<0xe0;q++){ SPI_SendByte(q);}

while(READ_BIT(SPI1 -> SR, SPI_SR_BSY));
GPIOB->ODR=0x2;

GPIOB->ODR=0x0;
SPI_SendByte(0x84);
SPI_SendByte(0x00);
SPI_SendByte(0x0);
SPI_SendByte(20);
for(uint8_t q=0; q<16;q++){SPI_SendByte(1);}
GPIOB->ODR=0x2;
delay(10);

GPIOB->ODR=0x0;
SPI_SendByte(0x84);
SPI_SendByte(0x0);
SPI_SendByte(0x0);
SPI_SendByte(25);
for(uint8_t q=0; q<5;q++){SPI_SendByte(5);}
GPIOB->ODR=0x2;
delay(10);


GPIOB->ODR=0x0;
SPI_SendByte(0xD4);
SPI_SendByte(0x0);
SPI_SendByte(0x0);
i=0; SPI_SendByte(0);

SPI_SendByte(0);

for(uint8_t q=0; q<0xff;q++){SPI_SendByte(0);}
while(READ_BIT(SPI1 -> SR, SPI_SR_BSY)); //a[3]=tmp;
GPIOB->ODR=0x2;



}

void SPI1_IRQHandler(void)
{
if(READ_BIT(SPI1->SR,SPI_SR_RXNE))
{CLEAR_BIT(SPI1->CR2,SPI_CR2_RXNEIE);

if(i==0xff){i=0;}
a[i]=tmp=(SPI1->DR)>>8; i++;
SET_BIT(SPI1->CR2,SPI_CR2_RXNEIE);
}
}

Все массивы пишутся с одного и того же адреса. Ну тоесть байт+бит адреса в буфере всегда воспринимается как ноль.

Никак не могу понять что не так((


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32L476VGT + AT45DB321
СообщениеДобавлено: Пн сен 25, 2017 10:48:43 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
А как объявлена i из прерывания SPI?

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32L476VGT + AT45DB321
СообщениеДобавлено: Пн сен 25, 2017 11:05:13 
Родился

Зарегистрирован: Пт сен 22, 2017 08:16:53
Сообщений: 7
Рейтинг сообщения: 0
uint8_t i; как глобальная. еще такая осбенность. когда D7(единоразово) отправляю флешка начинает спамить B4 со страшной силой не смотря на то что ей дальше отправляю


Последний раз редактировалось Arthur_1990 Пн сен 25, 2017 11:29:01, всего редактировалось 1 раз.

Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32L476VGT + AT45DB321
СообщениеДобавлено: Пн сен 25, 2017 11:28:25 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Добавьте ей volatile.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32L476VGT + AT45DB321
СообщениеДобавлено: Пн сен 25, 2017 11:37:11 
Родился

Зарегистрирован: Пт сен 22, 2017 08:16:53
Сообщений: 7
Рейтинг сообщения: 0
оптимизацию не делал. но volatile все равно присунул. результат не поменялся

Добавлено after 5 minutes 59 seconds:
как мне видеться проблемы именно с записью. массив один на другой накладывается. а читаю я за 1 раз.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32L476VGT + AT45DB321
СообщениеДобавлено: Вт сен 26, 2017 11:15:23 
Родился

Зарегистрирован: Пт сен 22, 2017 08:16:53
Сообщений: 7
Рейтинг сообщения: 0
Написал схожий код под F4(spi2) (в хозяйстве имеется f4disc) на нем все фурычит. Этот хитровыдуманный fifo в spi все виноват, но решения найти пока не могу(...


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

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


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

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


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

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


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