lcm浅析(一)

本文探讨了LCM_DRIVER结构体,重点关注其const char *成员和各种函数指针。LCM_PARAMS结构体内包括的设备宽度和高度等参数引发疑问,特别是设置实际尺寸后为何还需要width和height。此外,LCM_TYPE揭示了lcm与host间的接口,如DPI模式下可选择serial_dbi或gpio,LCM_INTERFACE_ID结构体进一步定义了这些接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LCM_DRIVER是我接触的第一个结构体,先来看看这个结构体的定义,除了第一个属于是const char *之外,其余的都属于是函数指针

typedef struct {
	const char *name; // 只能一次进行初始化,初始化后不可改变
	void (*set_util_funcs) (const LCM_UTIL_FUNCS *util);
	void (*get_params) (LCM_PARAMS *params);

	void (*init) (void);
	void (*suspend) (void);
	void (*resume) (void);
	/* for power-on sequence refinement */
	void (*init_power) (void);
	void (*suspend_power) (void);
	void (*resume_power) (void);

	void (*update) (unsigned int x, unsigned int y, unsigned int width, unsigned int height);
	unsigned int (*compare_id) (void);
#if defined(MTK_LCM_DEVICE_TREE_SUPPORT)
	void (*parse_dts)(const LCM_DTS *DTS, unsigned char force_update);
#endif
	/* /CABC backlight related function */
	void (*set_backlight) (unsigned int level);
	void (*set_backlight_cmdq) (void *handle, unsigned int level);
	void (*set_pwm) (unsigned int divider);
	unsigned int (*get_pwm) (unsigned int divider);
	void (*set_ba
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值