
我目前使用STM32H750加USB3300用做USB高速host,然后通过通过DCMI接口读取摄像头数据,摄像头的分辨率是640 480(640 480 * 2bytes)。 单独打开USB时,usb是工作正常的。 单独打开DCMI时,也是可以正常工作的。 如果打开USB后,再打开DCMI后,启动dma传输,usb就工作了,没有usb中断发生。 DCMI初始化代码 HAL_RCC_DMA2_CLK_DISABLE(); HAL_RCC_DCMI_CLK_DISABLE(); HAL_RCC_DMA2_CLK_ENABLE(); HAL_RCC_DCMI_CLK_ENABLE(); DCMI_InitStructure.Instance = DCMI; DCMI_InitStructure.Init.SynchroMode = DCMI_SYNCHRO_HARDWARE; // 硬件同步 DCMI_InitStructure.Init.PCKPolarity = DCMI_PCKPOLARITY_RISING; // 像素时钟上升沿采样 DCMI_InitStructure.Init.VSPolarity = DCMI_VSPOLARITY_HIGH; // VSYNC高有效 DCMI_InitStructure.Init.HSPolarity = DCMI_HSPOLARITY_LOW; // HSYNC高有效 DCMI_InitStructure.Init.CaptureRate = DCMI_CR_ALL_FRAME; // 捕获全帧 DCMI_InitStructure.Init.ExtendedDataMode = DCMI_EXTEND_DATA_8B; // 数据宽度(根据摄像头配置) HAL_DCMI_Init(&DCMI_InitStructure); HAL_NVIC_SetPriority(DCMI_IRQn, 5, 0); HAL_NVIC_EnableIRQ(DCMI_IRQn); // 2. 配置DMA句柄(DMA2 Stream1用于DCMI) DMA_InitStructure.Instance = DMA2_Stream1; DMA_InitStructure.Init.Request = DMA_REQUEST_DCMI; // DMA请求源为DCMI DMA_InitStructure.Init.Direction = DMA_PERIPH_TO_MEMORY; // 传输方向:外设到内存 DMA_InitStructure.Init.PeriphInc = DMA_PINC_DISABLE; // 外设地址不递增 DMA_InitStructure.Init.MemInc = DMA_MINC_ENABLE; // 内存地址递增 DMA_InitStructure.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; // 外设数据对齐32位 DMA_InitStructure.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; // 内存数据对齐32位 DMA_InitStructure.Init.Mode = DMA_CIRCULAR; // 循环模式(自动切换缓冲) DMA_InitStructure.Init.Priority = DMA_PRIORITY_LOW; // 高优先级 DMA_InitStructure.Init.FIFOMode = DMA_FIFOMODE_ENABLE; // 启用FIFO DMA_InitStructure.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; // FIFO阈值 HAL_DMA_Init(&DMA_InitStructure); // 3. 绑定DMA到DCMI __HAL_LINKDMA(&DCMI_InitStructure, DMA_Handle, DMA_InitStructure); // 外部SDRAM camera_buff = mymalloc(SRAMEX, 2CAMERA_WIDTHCAMERA_HIGH*2); HAL_DCMI_Start_DMA(&DCMI_InitStructure,DCMI_MODE_CONTINUOUS, (uint32_t)camera_buff, CAMERA_WIDTHCAMERA_HIGH2/4); USB初始化代码 HAL_PWREx_EnableUSBVoltageDetector(); USBH_Init(&hUSBHost, USBH_UserProcess, 0); USBH_RegisterClass(&hUSBHost, USBH_VIDEO_CLASS); USBH_Start(&hUSBHost); 这两个外设是否可以同时使用,工作时的数据量都很大。 |
stm32H745 M4核不能调试和下载
stm32h745 调试问题
我想实现三对移相PWM(占空比为50%)输出,前两对是互补输出,用了TIM1的CH1/CH1N和CH2/CH2N。第三对用了TIM1的CH3和TIM8的CH2,类似于互补输出。需要以TIM1的CH1/CH1N为参考,其余两对怎样实现占空比不变,相移可调呢?另外TIM8的CH1和CH3的PWM需要输出高电平
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
STM32H750使用FMC
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
STM32H723 TIM1输出三相50%的占空比,TIM_CH3的输出上升沿略比TIM_CH1和TIM_CH2超前,这是哪里配置有问题吗
stm32h7 用pb3、pb4、pb5、pa15做spi3后,mx组态时debug里选择serial wire,程序里加了禁用jtag,spi3口不能工作
MCSDK不能启动电机?
STM32H745启动与烧录问题