реклама на сайте
подробности

 
 
> не работает ответ i2c от stm32 в режиме slave, HAL
Метценгерштейн
сообщение Jun 2 2016, 13:20
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Коллеги, подскажите, как запустить корректно?

Проц STM32F030R8T6

если делать на прерываниях на HAL, то
Код
while (HAL_I2C_Slave_Transmit_IT( &hi2c1, TxBuf, (sizeof(TxBuf)/sizeof(TxBuf[0])) ) != HAL_OK)
    ;

так я отлично принимаю от мастера данные.

Если мастер меня запрашивает что- то, то как мне ему выдать данные? Как только что-то пытаюсь передать или просто, или на прерываниях, сразу шина зависает. И последующая запись идет с write filed.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
golf2109
сообщение Jun 3 2016, 21:22
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 15-04-10
Из: Kiev
Пользователь №: 56 654



я бы использовал DMA

**
* @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
* @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C.
* @param pData Pointer to data buffer
* @param Size Amount of data to be sent
* @retval HAL status
*/
HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 07:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.0134 секунд с 7
ELECTRONIX ©2004-2016