
USB_CDC_HOST 标准库里边USBH_DeAllocate_AllChannel()函数的疑问?
STM32部署机器学习算法硬件至少要使用哪个系列的芯片?
STM32L433VCT6 进入STOP模式2之后,功耗依然和正常运行模式没有差别,请教大神
重新配置SCB->VTOR = 0x08010000后,再次复位,程序异常,发现不进tick中断,IIC读数卡死在准备查询循环中。
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。
STM32F407的flash读写问题
keil调试阶段无法进行仿真,能进到仿真界面,但是无法执行程序,这个怎么解决?
STM32F4的IO口5V容忍问题
询问STM32F407两种USB可以实现的功能
timer捕捉到DATAREADY下降沿产生一个DMA request,这个DMA的数据源地址是SPI的数据寄存器,且MCU的SPI是主,目的地址是数组的首地址。当DMA request发起后,SPI开始发送数据,重复发送3个Byte(当接收24位ADC数据),或4个Byte(当接收32位ADC数据),同时会接收到相应长度的ADC数据。每次DATAREADY信号被ADC芯片拉低就会发起一个SPI DMA传输,接收当前ADC转换的数据,这个过程我没疑问,我担心的是,每次数据都会被搬到数组的首地址,而不是递增的地址,因为地址的递增实际上是每次传输3个Byte或4个Byte时的地址递增,而不是数组元素的地址递增。结果就是传输结束以后,数组里只有第一个元素有数据,也就是最后一次DMA传输得到的数据。不知道我这个担心是否正确,最后还得写代码验证。
如果是外部事件触发,我看到只有 DMAMUX的外设 才可以哦。
虽然是Timer事件捕获发起DMA request,具体从哪里搬运什到哪里是由你配置该DMA数据流的数据源地址和终地址来决定的,你可以把DMA控制器的数据源地址设为SPI的外设地址,终地址设为内存数组首地址,这样就可以从外设SPI搬运到内存了。
之所以要借用timer的事件捕捉,是因为DATAREADY 连接到GPIO端口是没有能力发起DMA request的,只能用GPIO端口的复用功能挂到timer的事件捕捉上才能发起DMA,而事件捕捉产生的DMA request并没有把数据搬运的源地址限定在timer的寄存器,你可以按照功能的需要去设置。