STM32F4硬件触发相机,相机输出事件

本文的设备为正点原子探索者最小核心板、海康MV-CS032-10GM

一、设备接线与相机配置

  1. 查看海康工业相机用户手册
  2. 采用Line0光耦隔离输入(好像缺点是延迟比GPIO高),单片机与光耦隔离地公地
  3. 从图2来看上下两个除了上拉电阻都差不多,而STM32是5v以下,好像不用接电阻,我就直接把引脚接上了,不知道有没有问题
  4. 不知道为什么Line1输出不好用,配置GPIO作为输出引脚,注意单片机需要与相机电源地公地(黑线)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/3b054c315b1b49568e22f10086548e25.png
在这里插入图片描述

二、输出任意频率、占空比可调的PWM波形

TIM_HandleTypeDef timx_out_handle;   /* 定时器x句柄 */

void gtim_timx_simulation_init(uint16_t arr, uint16_t psc)
{
	TIM_OC_InitTypeDef tim_oc_init_struct = {0};              	/* 定时器输出句柄 */
	GPIO_InitTypeDef gpio_init_struct;							
	
	GTIM_TIMX_OUT_CHY_CLK_ENABLE();                         	/* 使能TIMx时钟 */
	GTIM_TIMX_OUT_CHY_GPIO_CLK_ENABLE();                    	/* 开启输出IO的时钟 */

	gpio_init_struct.Pin = GTIM_TIMX_OUT_CHY_GPIO_PIN;      	/* 输出比较的GPIO口 */
	gpio_init_struct.Mode = GPIO_MODE_AF_PP;                	/* 复用推挽输出 */
	gpio_init_struct.Pull = GPIO_PULLDOWN;                  	/* 下拉 */
	gpio_init_struct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;     	/* 超高速 */
	gpio_init_struct.Alternate = GTIM_TIMX_OUT_CHY_GPIO_AF; 	/* 复用定时器通道 */
	HAL_GPIO_Init(GTIM_TIMX_OUT_CHY_GPIO_PORT, &gpio_init_struct);
	
	timx_out_handle.Instance = GTIM_TIMX_OUT;                 	/* 定时器x */
    timx_out_handle.Init.Prescaler = psc;                     	/* 预分频系数 */
    timx_out_handle.Init.CounterMode = TIM_COUNTERMODE_UP;    	/* 递增计数模式 */
    timx_out_handle.Init.Period = arr;                        	/* 自动重装载值 */
    HAL_TIM_OC_Init(&timx_out_handle);                        	/* 初始化输出比较 */
	
    tim_oc_init_struct.OCMode = TIM_OCMODE_PWM1;                     	
    tim_oc_init_struct.Pulse = 9900;                          	/* 设置比较值,此值用来确定占空比 */
    tim_oc_init_struct.OCPolarity = TIM_OCPOLARITY_LOW;       	/* 输出比较极性为低 */
    HAL_TIM_OC_ConfigChannel(&timx_out_handle, &tim_oc_init_struct, GTIM_TIMX_OUT_CHY); /* 配置TIMx通道y */
	
    HAL_TIM_OC_Start(&timx_out_handle, GTIM_TIMX_OUT_CHY);    	/* 开启对应输出比较通道 */
}

三、相机触发输出事件

在这里插入图片描述

  1. 在使能线路翻转后,才会输出如下图的波形(具体为什么不太了解)
  2. 输出线路持续时间设置为0,图中高电平持续时间就是相机持续曝光的时间,记录上升沿和下降沿的本地时间,取中间时刻即为相机曝光时间
    在这里插入图片描述

四、测试结果

采集帧率和设置的PWM波的频率一致,应该是成功了
![在这里插入图片描述](https://img-blog.csdnimg.cn/052b77c1ac664811b4e9bf65bc13a0c7.png

用示波器查看输出信号
在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值