Size: a a a

2020 May 21

u

uis in Embedded Group
Thorn
обработчик один для обоих каналов
Так канал на передачу не генерирует прерывание
источник

u

uis in Embedded Group
DMA1_Channel3->CCR=DMA_CCR_MINC
     |DMA_CCR_DIR
     |DMA_CCR_EN;
источник

u

uis in Embedded Group
uis
void preinitDma(){
   DMA1_Channel2->CPAR=(volatile uint32_t)&SPI1->DR;
   DMA1_Channel3->CPAR=(volatile uint32_t)&SPI1->DR;
//  NVIC->ISER[0]=(0b1<<10);
}
void sendMsg2(uint32_t size, uint8_t* tx, uint8_t* rx){
 DMA1_Channel2->CMAR=rx;
 DMA1_Channel2->CNDTR=size;
 DMA1_Channel2->CCR=DMA_CCR_MINC
     |DMA_CCR_TCIE
     |DMA_CCR_EN;

   SCB->SCR=SCB_SCR_SLEEPONEXIT_Msk;
 GPIOA->BSRR=GPIO_BSRR_BR_4;

 DMA1_Channel3->CMAR=tx;
 DMA1_Channel3->CNDTR=size;
 DMA1_Channel3->CCR=DMA_CCR_MINC
     |DMA_CCR_DIR
     |DMA_CCR_EN;
   __asm volatile("wfi");
}
.
источник

u

uis in Embedded Group
uis
DMA1_Channel3->CCR=DMA_CCR_MINC
     |DMA_CCR_DIR
     |DMA_CCR_EN;
DMA_CCR_TCIE там нет
источник

u

uis in Embedded Group
Thorn
вот я о чем: RM0091 стр 769-770
1. Enable DMA Rx buffer in the RXDMAEN bit in the SPI_CR2 register, if DMA Rx is
used.
2. Enable DMA streams for Tx and Rx in DMA registers, if the streams are used.
3. Enable DMA Tx buffer in the TXDMAEN bit in the SPI_CR2 register, if DMA Tx is used.
4. Enable the SPI by setting the SPE bit.
RM0360 стр 651
1. Write proper GPIO registers: Configure GPIO for MOSI, MISO and SCK pins.
2. Write to the SPI_CR1 register:
a) Configure the serial clock baud rate using the BR[2:0] bits (Note: 4).
b) Configure the CPOL and CPHA bits combination to define one of the four
relationships between the data transfer and the serial clock (CPHA must be
cleared in NSSP mode). (Note: 2 - except the case when CRC is enabled at TI
mode).
c) Select simplex or half-duplex mode by configuring RXONLY or BIDIMODE and
BIDIOE (RXONLY and BIDIMODE can't be set at the same time).
d) Configure the LSBFIRST bit to define the frame format (Note: 2).
e) Configure the CRCL and CRCEN bits if CRC is needed (while SCK clock signal is
at idle state).
f) Configure SSM and SSI (Notes: 2 & 3).
g) Configure the MSTR bit (in multimaster NSS configuration, avoid conflict state on
NSS if master is configured to prevent MODF error).
3. Write to SPI_CR2 register:
a) Configure the DS[3:0] bits to select the data length for the transfer.
b) Configure SSOE (Notes: 1 & 2 & 3).
c) Set the FRF bit if the TI protocol is required (keep NSSP bit cleared in TI mode).
d) Set the NSSP bit if the NSS pulse mode between two data units is required (keep
CHPA and TI bits cleared in NSSP mode).
e) Configure the FRXTH bit. The RXFIFO threshold must be aligned to the read
access size for the SPIx_DR register.
f) Initialize LDMA_TX and LDMA_RX bits if DMA is used in packed mode.
4. Write to SPI_CRCPR register: Configure the CRC polynomial if needed.
5. Write proper DMA registers: Configure DMA streams dedicated for SPI Tx and Rx in
DMA registers if the DMA streams are used.
источник

u

uis in Embedded Group
Коротко:
1. Write proper GPIO registers: Configure GPIO for MOSI, MISO and SCK pins.
2. Write to the SPI_CR1 register:
3. Write to SPI_CR2 register:
4. Write to SPI_CRCPR register: Configure the CRC polynomial if needed.
5. Write proper DMA registers: Configure DMA streams dedicated for SPI Tx and Rx in
DMA registers if the DMA streams are used.
источник

u

uis in Embedded Group
Мб надо сам spi включать после dma
источник

u

uis in Embedded Group
uis
Но всё работает, если с отладчиком выполнить инструкцию записи в ccr третьего канала в режиме пошаговой
Но напомню, что если включить передачу в отладке, то всё норм
источник

u

uis in Embedded Group
Ещё вроде работает dma на передачу и цикл на приём. Давно пробовал
источник

E

Evgen in Embedded Group
Парни, кто пробовал эклипс, какой плагин можете посоветовать, чтоб он не только выделял скрыть/раскрыть функции и комментарии, но и с if for while так делать можно ыбло?
источник

u

uis in Embedded Group
Evgen
Парни, кто пробовал эклипс, какой плагин можете посоветовать, чтоб он не только выделял скрыть/раскрыть функции и комментарии, но и с if for while так делать можно ыбло?
Попробуй QtCreator с плагином bare metal
источник

u

uis in Embedded Group
В последней версии завезли поддержку svd
источник

E

Evgen in Embedded Group
uis
Попробуй QtCreator с плагином bare metal
меня именно плагин интересует, чтоб все конструкцию можно было свернуть развернуть
Да и плюс меня попросили сделать проект в среде куба, поэтому смысла нет.
Мне хватает VS Code+GCC
источник

u

uis in Embedded Group
Evgen
меня именно плагин интересует, чтоб все конструкцию можно было свернуть развернуть
Да и плюс меня попросили сделать проект в среде куба, поэтому смысла нет.
Мне хватает VS Code+GCC
Не совсем понял. В qc можно сворачивать if, while и for. А проект можно создать в mx, а потом импортировать в qc.
источник

E

Evgen in Embedded Group
uis
Не совсем понял. В qc можно сворачивать if, while и for. А проект можно создать в mx, а потом импортировать в qc.
Меня интересует эклипс, а точнее куб. Чтоб в нем сворачивать лог. конструкции.
Я обычно юзаю VS Code +gcc
источник

u

uis in Embedded Group
Evgen
Меня интересует эклипс, а точнее куб. Чтоб в нем сворачивать лог. конструкции.
Я обычно юзаю VS Code +gcc
Ну так создай сначала в кубе
источник

u

uis in Embedded Group
А потом импортируй в другой среде
источник

E

Evgen in Embedded Group
uis
А потом импортируй в другой среде
я не хочу тратить время и городить автобус из-за маленького проекта, когда мне проще узнать про плагин.
Мне нужен плагин, я не рассматриваю среду другую. Плагин нужен. Плагин. Все остальное могу и там сделать спокойно и сильно не напряжно.
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Evgen
Парни, кто пробовал эклипс, какой плагин можете посоветовать, чтоб он не только выделял скрыть/раскрыть функции и комментарии, но и с if for while так делать можно ыбло?
он без плагина это делает
источник

DP

Dmitry Ponyatov in Embedded Group
Evgen
я не хочу тратить время и городить автобус из-за маленького проекта, когда мне проще узнать про плагин.
Мне нужен плагин, я не рассматриваю среду другую. Плагин нужен. Плагин. Все остальное могу и там сделать спокойно и сильно не напряжно.
может быть в настройках редактора по умолчанию отключено
источник