[DSP编程] 结构体赋值

[复制链接]
 楼主| PuppyDoge 发表于 2020-2-25 12:56 | 显示全部楼层 |阅读模式
最近在驱动OV7725时代码上遇到了一个问题
  1. typedef struct
  2. {
  3. uint8_t QVGA_VGA; /*0:QVGA 1:VGA*/

  4. /*QVGA:sx + width <=320, sy + heigth <=240*/
  5. /*VGA:sx + width <=320 或  240, sy + heigth <=320 或 240*/
  6. uint16_t cam_sx; /*摄像头窗口X起始位置*/
  7. uint16_t cam_sy; /*摄像头窗口Y起始位置*/

  8. uint16_t cam_width;/*图像分辨率,宽*/
  9. uint16_t cam_height;/*图像分辨率,高*/

  10. uint16_t lcd_sx;/*图像显示在液晶屏的X起始位置*/
  11. uint16_t lcd_sy;/*图像显示在液晶屏的Y起始位置*/
  12. uint8_t lcd_scan;/*液晶屏的扫描模式(0-7)*/

  13. uint8_t light_mode;/*光照模式,参考范围[0~5]*/
  14. int8_t saturation;/*饱和度,参考范围[-4~+4]*/
  15. int8_t brightness;/*光照度,参考范围[-4~+4]*/
  16. int8_t contrast;/*对比度,参考范围[-4~+4]*/
  17. uint8_t effect;/*特殊模式,参考范围[0~6]*/

  18. }OV7725_MODE_PARAM;


我该如何对其里面的值赋值
  1. OV7725_MODE_PARAM cam_mode =
  2. {

  3.         .QVGA_VGA = 0,
  4.         .cam_sx = 0,
  5.         .cam_sy = 0,

  6.         .cam_width = 320,
  7.         .cam_height = 240,

  8.         .lcd_sx = 0,
  9.         .lcd_sy = 0,
  10.         .lcd_scan = 3,

  11.         .light_mode = 0,
  12.         .saturation = 0,
  13.         .brightness = 0,
  14.         .contrast = 0,
  15.         .effect = 0,
  16. };


我参考STM32的例程对其赋值,但是系统报错#29 expected an expression,想问下大家有什么解决方法?
airwill 发表于 2020-3-5 21:29 | 显示全部楼层
结构体的赋值, 能系统启动代码的,能够被编译器支持
zhangmangui 发表于 2020-3-8 22:26 | 显示全部楼层
OV7725_MODE_PARAM.xxx就可以啊   
andyjian 发表于 2020-6-22 22:53 来自手机 | 显示全部楼层
结构体是通用的c编程的数据类型,赋值跟cpu载体无关,看一下谭浩强的c
ayb_ice 发表于 2020-6-24 15:34 | 显示全部楼层
需要使能C99标准,或直接按顺序直接写初始值,不写名字
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

3

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部