L.ail& 2022-10-14 15:25 采纳率: 12.5%
浏览 44
已结题

调用cubemx自动生成的句柄显示报错

问题遇到的现象和发生背景

用cubemx配置dcmi,在编写回调函数HAL_DCMI_FrameEventCallback的时候,调用函数__HAL_DCMI_CLEAR_FLAG和__HAL_DCMI_ENABLE_IT的参数中句柄显示报错,但是这个句柄是cubemx自动生成的。

用代码块功能插入代码,请勿粘贴截图

DCMI_HandleTypeDef hdcmi;
DMA_HandleTypeDef hdma_dcmi;

void MX_DCMI_Init(void) //cubemx自动生成的初始化代码
{
hdcmi.Instance = DCMI;
hdcmi.Init.SynchroMode = DCMI_SYNCHRO_HARDWARE;
hdcmi.Init.PCKPolarity = DCMI_PCKPOLARITY_FALLING;
hdcmi.Init.VSPolarity = DCMI_VSPOLARITY_LOW;
hdcmi.Init.HSPolarity = DCMI_HSPOLARITY_LOW;
hdcmi.Init.CaptureRate = DCMI_CR_ALL_FRAME;
hdcmi.Init.ExtendedDataMode = DCMI_EXTEND_DATA_8B;
hdcmi.Init.JPEGMode = DCMI_JPEG_ENABLE;
if (HAL_DCMI_Init(&hdcmi) != HAL_OK)
{
Error_Handler();
}
}

void HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi)
{
__HAL_DCMI_CLEAR_FLAG(&hdcmi,DCMI_FLAG_FRAMERI);//清除帧中断
jpeg_data_process();//jpeg数据处理
ov_frame++;
//重新使能帧中断,因为HAL_DCMI_IRQHandler()函数会关闭帧中断
__HAL_DCMI_ENABLE_IT(&hdcmi,DCMI_IT_FRAME);
}

运行结果及报错内容

Error[Pe132]: expression must have pointer-to-struct-or-union type
错误[Pe132]:表达式必须有指向结构或联合类型的指针,但是这个&hdcmi是自动生成的。

我的解答思路和尝试过的方法

我试过在DCMI_HandleTypeDef和函数里把hdcmi改成hdcmi1,这样能把报错消除,但是这样肯定运行不了

  • 写回答

1条回答 默认 最新

  • 蓝天居士 《人工智能从入门到进阶实战》作者 2022-10-14 19:51
    关注

    将EventCallback函数中的hdcmi前边的&去掉,因为已经是指针了。不需要再取地址

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 已采纳回答 10月17日
  • 创建了问题 10月14日

悬赏问题

  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒