完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
之前都是使用STM32F10系列的单片机做小项目
最近想做视频方面的,给模拟视频转换并显示,看到TVP5150,但大部分是 arm开发板带的模块。 由于只做视频,再买个ARM太浪费了,看到STM32新品中4系列有DCMI接口,刚好TVP5150能输出YCBCR数据流(可惜如果输出RGB就更好了)。 调试了三周左右,视频一直没有出来,但别人说配置几个寄存器就行了,可我的就是不行。全是黑屏,如果输出嵌入式同步信号,接收部分选择分离同步信号,屏幕上还有同步的斑点。数据接收没有问题。 昨天我用逻辑分析仪分析输出信号,拿掉了几根数据线,屏幕居然出现了图像!!! 全接上又没有了,接的数据线多少和图像的持续时间有关!!! 这个会不会是高频信号的干扰?(我用杜邦线飞到开发板上的) 还可能是TVP5150的数据输出能力与 STM32数据接口的配置 谁有过这样的经验?我的TVP5150模块在ARM嵌入式开发板淘宝店买的。 void DCMI_DMAInit(void) { DCMI_InitTypeDef DCMI_InitStructure; DMA_InitTypeDef DMA_InitStructure; /*** Configures the DCMI to interface with the OV9655 camera module ***/ /* Enable DCMI clock */ RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_DCMI, ENABLE); /* DCMI configuration */ DCMI_InitStructure.DCMI_CaptureMode = DCMI_CaptureMode_Continuous; DCMI_InitStructure.DCMI_SynchroMode = DCMI_SynchroMode_Hardware; DCMI_InitStructure.DCMI_PCKPolarity = DCMI_PCKPolarity_Falling; DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_High; DCMI_InitStructure.DCMI_HSPolarity = DCMI_HSPolarity_High; DCMI_InitStructure.DCMI_CaptureRate = DCMI_CaptureRate_All_Frame; DCMI_InitStructure.DCMI_ExtendedDataMode = DCMI_ExtendedDataMode_8b; /* DCMI configuration */ DCMI_Init(&DCMI_InitStructure); /* Configures the DMA2 to transfer Data from DCMI */ /* Enable DMA2 clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); /* DMA2 Stream1 Configuration */ DMA_DeInit(DMA2_Stream1); while (DMA_GetCmdStatus(DMA2_Stream1) != DISABLE) { } DMA_InitStructure.DMA_Channel = DMA_Channel_1; DMA_InitStructure.DMA_PeripheralBaseAddr = DCMI_DR_ADDRESS; // DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)uData; DMA_InitStructure.DMA_Memory0BaseAddr = FSMC_LCD_ADDRESS; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; // DMA_InitStructure.DMA_BufferSize = 32000; DMA_InitStructure.DMA_BufferSize = 1; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; /* DMA2 IRQ channel Configuration */ DMA_Init(DMA2_Stream1, &DMA_InitStructure); DMA_ITConfig(DMA2_Stream1, DMA_IT_TC, ENABLE); /* DMA Stream enable */ DMA_Cmd(DMA2_Stream1, ENABLE); while ((DMA_GetCmdStatus(DMA2_Stream1) != ENABLE)) { } } static uint8_t TVPReg[][2] = { {0x00, 0x00}, {0x02, 0x00}, {0x03, 0x0f}, {0x0d, 0x00}, {0x0f, 0x00}, {0x1b, 0x14}, {0x08, 0x0c}, {0x07, 0x77}, {0x28, 0x00}, // {0x11, 0x32}, // {0x12, 0x00}, // {0x13, 0x32}, // {0x14, 0x02}, // {0x18, 0x55}, // {0x19, 0x80}, }; GPIO的配置模式是这样的 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; GPIO_Init(GPIOC, &GPIO_InitStructure); |
|
相关推荐
7个回答
|
|
看你的程序配置没有问题,应该是出在连线上。杜邦线在连接过程中,引脚接入端口会产生干扰,频率太高,可能造成的影响也就越大
|
|
|
|
干扰的问题应该有,我正在画板子,还有一个可能,就是我买的模块1.8V模拟部分或者数字部分的驱动能力有限,数据线全部挂上YOUT就全输出0,我试试上拉,而且布线也要注意,还有电源
|
|
|
|
可能是接触不良...
|
|
|
|
|
|
|
|
楼主大大您好 我现在也在尝试用STM32驱动5150 您能发个您的工程让我学习下不?
|
|
|
|
楼主您好,问题解了吗?加Q761227397相互探讨
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1187 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1122 浏览 2 评论
2223 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1311 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1735 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 05:34 , Processed in 0.843407 second(s), Total 85, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号