[ZEPHYR]SDMMC2 Clock Initialization Failure on M4 Core (PLL2R Frequency Mismatch) 問題詢問
STM32H750 FFT 时间太长
STM32H503RB I3C通信中,IBI payload data,主机最多能接收几个字节?如果超过4 bytes,主机该如何接收?
OV5640 JPEG帧头和帧尾读取错误,无法找到FFD8和FFD9
问题解决,自己吓自己了
又有问题了,在尝试H7板子DA操作,但是DA按钮是灰色的咋回事
STM32H747在计算内置温度时硬件错误
STM32H503RB I3C通信中,主机如何通过SETAASA CCC方式使从机进入i3c模式?
自己设计了一个PCB板,一开始还能识别到芯片并且烧录程序,但是用几次后,就识别不到芯片了,并且无法烧录程序。
有关STM32h755的单片机?
微信公众号
手机版
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输出结果