Jump to content
Sign in to follow this  
mappy89

Передача Нескольких Байт По Spi

Recommended Posts

Контроллер stm32f429zi. Настроил SPI1, всё работает при передачи отдельных байт. Написал простенькую функцию для передачи строки, однако массив переменных, отвечающих за хранение принятых джанных содержит лишь последний байт

void send_str(char *mych)
{
while(*mych)
{
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
 SPI_I2S_SendData(SPI1, *mych++);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);

}
}

volatile char marr[10];  // буфер приёма данных
volatile short count=0;
void SPI1_IRQHandler()
{
marr[count++]=SPI_I2S_ReceiveData(SPI1);
}

Помогите разобраться, в чём дело

Share this post


Link to post
Share on other sites

Ладно, киньте просто рабочий кусок кода приёма/передачи нескольких байт по spi для stm32 контроллеров, буду признателен

Share this post


Link to post
Share on other sites

Технология Maxim Integrated nanoPower: когда малый IQ имеет преимущества

При разработке устройств с батарейным питанием важно выбирать компоненты не просто с малым потреблением, но и с предельно малым током покоя. При этом следует обратить внимание на линейку nanoPower производства компании Maxim Integrated. В статье рассмотрено их применение на примере системы датчиков беспроводной оконной сигнализации.

Подробнее

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • Буфер adc и буфер для usart не пересекаются. Просто из отрывков кода это не видно. Я искал зацепку в даташите, но ничего вразумительного не нашел. Вероятно это глюк самого контроллера, а точнее его периферии. Поэкспериментирую еще сегодня. Результат отпишу.
    • а лучше если кто умеет гитару взять.
    • Не прошло и 10 лет, расширил я немного свои знания в электронике, нашлось времени и решил вернуться к данному усилителю. С трудом, но отклеил прижимные пластины транзисторов. А там, полевые транзисторы SMW45N10 и SMW20P10. Подгорающие резисторы соединяют истоки полевиков с выходными фильтрующими конденсаторами блока питания. А сток идёт прямо на выходные клеммы к АС. И теперь опять тупик. Что можно ещё измерить кроме напряжение на затворе, чтобы попробовать найти причину? Или направьте что почитать можно ещё? Лично для меня логично выглядит, что не подходящая нагрузка была подключена, но проблема наверное не в этом. К слову, сам усилитель предохранителя не имеет.  Спасибо.
    • Оооооооо! Китайские квази-ничикончики. ))
    • Логика работы сильно хромает. Контроль за разрядкой (загоранием светодиода) все равно осуществляется визуально. Человек смотрит на светодиод и при зажигании светодиода ручками меняет акки. Так зачем тогда все эти сложности с контроллером и пр? Просто  TL431 и светодиод на каждый акк, который показывает когда напряжение падает ниже уровня. Так-же точно загорится светодиод при снижении и так-же точно ручками человек меняет севший акк на заряженый. 
    • Всем привет! Помогите опознать шым.Надпись на корпусе LPS   5T7H,  2 нога минус питания 3.7в, 3 или 4 плюс питание,   3 и 4 дросель !!!
    • И все пару килобайт данные из DMA? Если так, то завести второй буфер, в который будут перекладываться данные после наполнения буфера отсчетов. Это будет быстро. А уже этот буфер передавать. Соответственно, пока идет запись или передача, буфер больше никто не должен трогать.
×
×
  • Create New...