ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 апреля
748182 Топик полностью
Apтём (07.04.2017 18:42 - 18:48, просмотров: 106) ответил my504 на Это все и так было понятно. Проблема в расчете границы необработанных данных. В ФИФО все сделано аппаратно, а тут нужно считать ручками.
Эээ... 
Проблема в расчете границы необработанных данных.
Да уж, проблема: INLINE static uint16_t GetTrfCnt() { CRITICAL_SECTION(); return DMA_CH->TRFCNT; } volatile uint8_t RxBuffer[400]; uint16_t RxNext, RxFirst; void main() { //// //// while (1) { // расчёт индекса принятых даннных uint16_t dma_rx_index=rx_dma::GetTrfCnt(); RxNext=sizeof(RxBuffer)-dma_rx_index; if (RxNext!=RxFirst) { }
а тут нужно считать ручками.
Так и пусть считает - на то он и МК.
В ФИФО все сделано аппаратно, а тут нужно считать ручками. -
В ФИФИ тоже не всё аппаратно - чтобы его считать, МК должен его прочитать, вот если бы оно само как-нибудь, тогда да...