
stm32Cube Visual studio code 如何设置STM32H7的下载算法
STM32H755的TouchGFX不能选择M7内核
FW_H7 V1.12.1-HAL库DMA双缓冲配置
STM32H743 LAN8720 CUBEMX配置lwIP无法ping通,分配pbuf失败
详细解释STM32H503的PRODUCT_STATE状态字,似乎写ED以外都不能返回了
请教下关于 stm32h7x5,7x7 系列双核 dsi ltdc 显示驱动的时钟频率配置 ?
STM32H750VBT6 + W5500 + 激光雷达点云
STM32H750XBH6的外置SDRAM相关问题
STM32H743vit6无法连接
X-CUBE-AZRTOS-H7
LL命令会节省一些代码时间,但是外设的运行和处理方式并不会节省很多。
你现在20位ADC,转换速率0.5s,按32位接收的话,那么至少需要64M的波特率才能满足要求。
使用STM32H5的SPI可以实现125M的波特率,同时SPI带16字节的FIFIO,配合接收FIFO,
这样看来接收应该是没啥问题的。如果每次ADC采样结果的数据不多的话,每次接收完一笔
数据后再去处理应该来得及。
这个处理过程如果时间不是很紧张的话,至于是使用HAL库还是LL库组织代码
问题不大。 我认为这个接收的快慢跟你使用哪个类型库组织的配置及启动代码没什么关系。
[md]瓶颈就在SPI读取上,用hal的:
HAL_SPI_Receive(&hspi1, mrx_data, 3, HAL_MAX_DELAY);//SPI一次连读取3字节AD转换结果 HAL SPI读取3字节需要1.95us
而ADC的转换速率是2Msps即0.5uS一次。不能用DMA,因为每一次转换之前要给ADC一个几百ns的正脉冲,CPU必须介入每一次转换,这就是无奈之处。
总之SPI_Receice时间越短越好。
用timer2 去触发 GPDMA1--> 搬运数据给 SPI TXDR,
同时触发 GPDMA2--> 从SPI RXDR搬运数据给RAM。
定时器输出的PWM可以作为给ADC的脉冲信号
这里修改了一下HAL_SPI_TransmitReceive_DMA 内接收的数据个数,使得接收数组足够大
这样就可以有足够的时间在半完成和完成中断处理数据.
测试中将 spi 数据短接,模拟ADC输出结果