Например TDA7294

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





Текущее время: Вт апр 23, 2024 13:54:10

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


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



Начать новую тему Ответить на тему  [ Сообщений: 200 ]  1, , , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 21:12:36 
Встал на лапы

Карма: -1
Рейтинг сообщений: -10
Зарегистрирован: Ср июл 18, 2018 11:51:59
Сообщений: 83
Рейтинг сообщения: 0
Бобры вечер, люди.
Изучаю, только начал. И мне нужна помощь (не такая типа "мля, вот нагугли, кури даташиты...", крили гуглили).
У меня такой вопрос.
Вот есть в библиотеке HAL такой код
Код:
 

#define RCC    ((uint8_t *)  0xcccccccc) // неважен смысл и где это все

typedef struct
{
....
uint8_t GRH;
.....
} SPI_TypedefChto_totam;

RCC->GRH =.....



И вот я делую точно так же, создаю такую структуру, но внутри массив

typedef struct
{
int Data_buff[512];

}SPI_Data_BuffType;

Дефаню пойнтер с адресом в области SRAM 0x30000000
и хрен там. Мой пойнтер ни видно!!!
С чего бы?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 21:44:34 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вы сами поняли, что написали ? :facepalm: Хоть бы кусок кода, чтоли прилепили ...
Кстати, в коде, который Вы показали из библиотеки, ошибка. RCC - указатель на uint8_t, а не на структуру.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 21:48:44 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
что значит "не видно"?


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 21:56:54 
Встал на лапы

Карма: -1
Рейтинг сообщений: -10
Зарегистрирован: Ср июл 18, 2018 11:51:59
Сообщений: 83
Рейтинг сообщения: 0
Я заставил все заработать...
Почти все.
Но у меня в заголовочном файле не распознает тип uint8_t.
С чего бы...

Добавлено after 5 minutes 19 seconds:
RCC - указатель на uint8_t, а не на структуру.

Разве это не первый элемент структуры?


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 22:03:27 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
khch писал(а):
Разве это не первый элемент структуры?
С чего бы ? Где Вы тут видите хоть одно упоминание о структуре :
Код:
#define RCC    ((uint8_t *)  0xcccccccc)
?
Я вижу указатель на uint8_t с адресом 0xcccccccc.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 22:03:49 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
в приведенном фрагменте кода - нет. Компилятор на такое ругнется типа "человек, что ты мне втираешь, у uint8_t нет поля GRH"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 22:06:14 
Опытный кот
Аватар пользователя

Карма: 4
Рейтинг сообщений: 11
Зарегистрирован: Вт окт 23, 2012 13:17:25
Сообщений: 823
Откуда: Киселевск
Рейтинг сообщения: 0
Я не понимаю ваш подход к программированию. Что вы хотите сделать?
Скриншот или текст что компилятор говорит.

_________________
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 22:07:05 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
кстати, в чем конечная цель вот этого телодвижения -
Дефаню пойнтер с адресом в области SRAM 0x30000000

во что бы то ни стало разместить массив по определенному адресу? По-хорошему это делается не так. Раскидывать переменные по памяти - дело линкера, и пинать надо именно его.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 22:08:16 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
khch писал(а):
крили гуглили
По всей видимости - плохо курили и гуглили. Так что :
khch писал(а):
"мля, вот нагугли, кури даташиты..."

:)
Вы задаёте вопросы, ответы на которые гуглятся за секунды. Это всё азы языка Си ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 22:11:17 
Встал на лапы

Карма: -1
Рейтинг сообщений: -10
Зарегистрирован: Ср июл 18, 2018 11:51:59
Сообщений: 83
Рейтинг сообщения: 0
Код:
typedef struct
{
 uint8_t Data_buff[512];

}SPI_Data_BuffType;



void DMA_ACCUM ()
{
    uint8_t Data;
HAL_SPI_Receive_DMA (&hspi1, &Data, 1);
   
    Pointer->Data_buff[0] = Data;     // pointer задан дефайном, как указал ранее.
   
}

Компилятор доволен. Что настораживает. Впрочем это так, только понимание работы.
пытаюсь принять черех SPI непрерывный поток данных, отправить это все в буфер и так дальше....

Добавлено after 1 minute 25 seconds:
khch писал(а):
крили гуглили
По всей видимости - плохо курили и гуглили. Так что :
khch писал(а):
"мля, вот нагугли, кури даташиты..."

:)
Вы задаёте вопросы, ответы на которые гуглятся за секунды. Это всё азы языка Си ...


Видимо плохо, да.
Конечно за секунды. Все нормально, спасибо. Я не знал про гугл, наврал просто. Вы мне глаза открыли...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 22:16:22 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
khch писал(а):
Pointer->Data_buff[0] = Data; // pointer задан дефайном, как указал ранее
Если так :
Код:
#define Pointer  ((uint8_t *)  0xcccccccc)
то компилятор просто обязан Вас отругать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Пн авг 06, 2018 22:25:23 
Встал на лапы

Карма: -1
Рейтинг сообщений: -10
Зарегистрирован: Ср июл 18, 2018 11:51:59
Сообщений: 83
Рейтинг сообщения: 0
Извините, он не ругает. Может работать не будет, но не ругает.

Добавлено after 1 minute 5 seconds:
Но почему должен?

Добавлено after 3 minutes 58 seconds:
Блин... Дошло... Там же вместо uint должно быть название структуры... Мать её.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Вт авг 07, 2018 11:04:15 
Встал на лапы

Карма: -1
Рейтинг сообщений: -10
Зарегистрирован: Ср июл 18, 2018 11:51:59
Сообщений: 83
Рейтинг сообщения: 0
Я, кстати, в коде правильно написал :)
Это тут набрал неверно. Потому и не ругался компайлер

Добавлено after 2 minutes 10 seconds:
Слушайте, а куда DMA укладывает данные с регистра данных SPI ?
HAL_SPI_Receive_DMA -- вот функция
Я принудительно написал адрес SRAM. Но ведь

Добавлено after 38 minutes 2 seconds:
Люди, обьясните как по этому коду найти куда функция пересылает данные?
Код:
HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
{
  HAL_StatusTypeDef errorcode = HAL_OK;

  if((hspi->Init.Direction == SPI_DIRECTION_2LINES)&&(hspi->Init.Mode == SPI_MODE_MASTER))
  {
     hspi->State = HAL_SPI_STATE_BUSY_RX;
     /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line */
     return HAL_SPI_TransmitReceive_DMA(hspi, pData, pData, Size);
  }

  /* Process Locked */
  __HAL_LOCK(hspi);

  if(hspi->State != HAL_SPI_STATE_READY)
  {
    errorcode = HAL_BUSY;
    goto error;
  }

  if((pData == NULL) || (Size == 0U))
  {
    errorcode = HAL_ERROR;
    goto error;
  }

  /* Set the transaction information */
  hspi->State       = HAL_SPI_STATE_BUSY_RX;
  hspi->ErrorCode   = HAL_SPI_ERROR_NONE;
  hspi->pRxBuffPtr  = (uint8_t *)pData;
  hspi->RxXferSize  = Size;
  hspi->RxXferCount = Size;

  /*Init field not used in handle to zero */
  hspi->RxISR       = NULL;
  hspi->TxISR       = NULL;
  hspi->TxXferSize  = 0U;
  hspi->TxXferCount = 0U;

  /* Configure communication direction : 1Line */
  if(hspi->Init.Direction == SPI_DIRECTION_1LINE)
  {
    SPI_1LINE_RX(hspi);
  }

#if (USE_SPI_CRC != 0U)
  /* Reset CRC Calculation */
  if(hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)
  {
    SPI_RESET_CRC(hspi);
  }
#endif /* USE_SPI_CRC */

  /* Set the SPI RxDMA Half transfer complete callback */
  hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt;

  /* Set the SPI Rx DMA transfer complete callback */
  hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt;

  /* Set the DMA error callback */
  hspi->hdmarx->XferErrorCallback = SPI_DMAError;

 /* Set the DMA AbortCpltCallback */
  hspi->hdmarx->XferAbortCallback = NULL;

  /* Enable the Rx DMA Stream */
  HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->DR, (uint32_t)hspi->pRxBuffPtr, hspi->RxXferCount);

  /* Check if the SPI is already enabled */
  if((hspi->Instance->CR1 &SPI_CR1_SPE) != SPI_CR1_SPE)
  {
    /* Enable SPI peripheral */
    __HAL_SPI_ENABLE(hspi);
  }

  /* Enable the SPI Error Interrupt Bit */
  SET_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE);

  /* Enable Rx DMA Request */
  SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN);

error:
  /* Process Unlocked */
  __HAL_UNLOCK(hspi);
  return errorcode;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Вт авг 07, 2018 11:11:30 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
(uint32_t)hspi->pRxBuffPtr - это не оно?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Вт авг 07, 2018 11:23:36 
Встал на лапы

Карма: -1
Рейтинг сообщений: -10
Зарегистрирован: Ср июл 18, 2018 11:51:59
Сообщений: 83
Рейтинг сообщения: 0
Код:
typedef struct __SPI_HandleTypeDef
{
  SPI_TypeDef                *Instance;    /*!< SPI registers base address */
  SPI_InitTypeDef            Init;         /*!< SPI communication parameters */
  uint8_t                    *pTxBuffPtr;  /*!< Pointer to SPI Tx transfer Buffer */
  uint16_t                   TxXferSize;   /*!< SPI Tx Transfer size */
  __IO uint16_t              TxXferCount;  /*!< SPI Tx Transfer Counter */
  uint8_t                    *pRxBuffPtr;  /*!< Pointer to SPI Rx transfer Buffer */
  uint16_t                   RxXferSize;   /*!< SPI Rx Transfer size */
  __IO uint16_t              RxXferCount;  /*!< SPI Rx Transfer Counter */
  void                       (*RxISR)(struct __SPI_HandleTypeDef * hspi); /*!< function pointer on Rx ISR */
  void                       (*TxISR)(struct __SPI_HandleTypeDef * hspi); /*!< function pointer on Tx ISR */
  DMA_HandleTypeDef          *hdmatx;      /*!< SPI Tx DMA Handle parameters   */
  DMA_HandleTypeDef          *hdmarx;      /*!< SPI Rx DMA Handle parameters   */
  HAL_LockTypeDef            Lock;         /*!< Locking object                 */
  __IO HAL_SPI_StateTypeDef  State;        /*!< SPI communication state */
  __IO uint32_t              ErrorCode;    /*!< SPI Error code */
}SPI_HandleTypeDef;


Это все, что я могу о нем сказать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Вт авг 07, 2018 11:30:54 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
комментарии к коду не пробовали читать, если уж документацию на HAL лень?
Pointer to SPI Rx transfer Buffer

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Вт авг 07, 2018 14:30:33 
Встал на лапы

Карма: -1
Рейтинг сообщений: -10
Зарегистрирован: Ср июл 18, 2018 11:51:59
Сообщений: 83
Рейтинг сообщения: 0
комментарии к коду не пробовали читать, если уж документацию на HAL лень?
Pointer to SPI Rx transfer Buffer


Изучаю. Не могу найти.
Подозреваю, что нет.Думаю это пойнтер на регистр данных в SPI. А мне нужно место, куда ДМА записывает поступившие данные


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Вт авг 07, 2018 14:52:34 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Вы чё, прикалываетесь?
Код:
  /* Enable the Rx DMA Stream */
  HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->DR, (uint32_t)hspi->pRxBuffPtr, hspi->RxXferCount);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Вт авг 07, 2018 15:09:27 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
khch писал(а):
Думаю это пойнтер на регистр данных в SPI
разве РЕГИСТР теперь называется БУФФЕР?
ARV писал(а):
Pointer to SPI Rx transfer Buffer
вы это можете прочесть и перевести?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Буфер данных Stm32f103c8
СообщениеДобавлено: Вт авг 07, 2018 15:17:50 
Встал на лапы

Карма: -1
Рейтинг сообщений: -10
Зарегистрирован: Ср июл 18, 2018 11:51:59
Сообщений: 83
Рейтинг сообщения: -4
khch писал(а):
разве РЕГИСТР теперь называется БУФФЕР?
ARV писал(а):
Pointer to SPI Rx transfer Buffer
вы это можете прочесть и перевести?


Давайте постараемся быть сдержанее. Мне очень полезен ваш ответ. Но если он будет сопровождаться хамством по отношению ко мне - воздержитесь.
Да, я не плачУ за знания, а вы мне не обязаны отвечать.
Я в этом деле совсем новичок. Ничего не понимаю. Зачастую люди используют одному и тому же процессу\явлению разные названия, используют сленг и я пытаюсь защититься от этих ошибок.
И потом мне бы хотелось знать где именно этот буфер.


Последний раз редактировалось khch Вт авг 07, 2018 15:23:17, всего редактировалось 1 раз.

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

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 30


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

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


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