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

 
 
> STM32F4, Serial Audio Interface, функции HAL
Atlantis-
сообщение Mar 24 2015, 13:33
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102



Здравствуйте!
В stm32f429 есть блок SAI и в нем, судя по описанию, есть 32-битный регистр данных. То есть в режиме I2S можно оперировать 32-битными значениями. Однако в библиотеке HAL в функции передачи данных нужно передавать 16-битные значения. Например
CODE

HAL_StatusTypeDef HAL_SAI_Transmit_IT(SAI_HandleTypeDef *hsai, uint16_t *pData, uint16_t Size)
{
if(hsai->State == HAL_SAI_STATE_READY)
{
if((pData == NULL) || (Size == 0))
{
return HAL_ERROR;
}

hsai->pTxBuffPtr = pData;
hsai->TxXferSize = Size;
hsai->TxXferCount = Size;

/* Process Locked */
__HAL_LOCK(hsai);

hsai->State = HAL_SAI_STATE_BUSY_TX;

/* Transmit data */
hsai->Instance->DR = (*hsai->pTxBuffPtr++);
hsai->TxXferCount--;

/* Process Unlocked */
__HAL_UNLOCK(hsai);

/* Enable FRQ and OVRUDR interrupts */
__HAL_SAI_ENABLE_IT(hsai, (SAI_IT_FREQ | SAI_IT_OVRUDR));

/* Check if the SAI is already enabled */
if((hsai->Instance->CR1 & SAI_xCR1_SAIEN) != SAI_xCR1_SAIEN)
{
/* Enable SAI peripheral */
__HAL_SAI_ENABLE(hsai);
}


return HAL_OK;
}
else if(hsai->State == HAL_SAI_STATE_BUSY_TX)
{
/* Process Locked */
__HAL_LOCK(hsai);

/* Transmit data */
hsai->Instance->DR = (*hsai->pTxBuffPtr++);

hsai->TxXferCount--;

if(hsai->TxXferCount == 0)
{
/* Disable FREQ and OVRUDR interrupts */
__HAL_SAI_DISABLE_IT(hsai, (SAI_IT_FREQ | SAI_IT_OVRUDR));

hsai->State = HAL_SAI_STATE_READY;

HAL_SAI_TxCpltCallback(hsai);
}

/* Process Unlocked */
__HAL_UNLOCK(hsai);

return HAL_OK;
}

else
{
return HAL_BUSY;
}
}


Непонятно, почему так сделано? И можно ли как то обмануть библиотеку и работать с int-ами?

Сообщение отредактировал Atlantis- - Mar 24 2015, 13:42
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:55
Рейтинг@Mail.ru


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