|
发表于 2023-2-21 21:25:25
|
显示全部楼层
本帖最后由 Himem 于 2023-2-23 14:45 编辑
当时这个工程是lptim直接分频就输出event,不需要再设置trgo源
(request number = 3 * spi8bit, 一次读写3字节)
连续读部分:
- #define DMA_POINTS 256*3
- uint32_t dmanull[4] @ 0x30047ff0;
- uint8_t dmabuf[2][DMA_POINTS] @ 0x30047000; //max 4k
- ....
- void ad_dmainit(int Period, int Pulse)
- {
- //dma timebase 153600hz/ 64 = 2400
- //HAL_LPTIM_PWM_Start(&hlptim1, 31, 16);
- HAL_LPTIM_PWM_Start(&hlptim1, Period, Pulse);
- memset(dmanull, 0, sizeof(dmanull));
- memset(dmabuf, 0xaa, sizeof(dmabuf));
- HAL_SPI_Transmit_DMA(&hspi1, (void*)dmanull, 12); //sck base
-
- __HAL_DMA_DISABLE(hspi1.hdmarx);
- HAL_DMAEx_MultiBufferStart(hspi1.hdmarx, (uint32_t)&hspi1.Instance->RXDR, (uint32_t)dmabuf[0], (uint32_t)dmabuf[1], DMA_POINTS);
- SET_BIT(hspi1.Instance->CFG1, SPI_CFG1_RXDMAEN);
- __HAL_SPI_ENABLE(&hspi1);
- SET_BIT(hspi1.Instance->CR1, SPI_CR1_CSTART);
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|