//写16位命令 void write_command(int command) { ch452_start(); //启动总线 ch452_write_byte((uchar)(command>>7)&CH452_MASK|CH452_ADDR); ch452_write_byte((uchar)command); //写低位 ch452_stop(); //结束总线 } //读取按键 uchar read_command(int read_cmd) { uchar value; ch452_start(); //启动总线 ch452_write_byte(read_cmd); //写高位 ch452_write_byte((uchar)(read_cmd>>7)&CH452_MASK|CH452_ADDR|0x01); value=ch452_read_byte(); //读取数据 ch452_stop(); //结束总线 return value; } 尤其是此语句:ch452_write_byte((uchar)(command>>7)&CH452_MASK|CH452_ADDR); 和 ch452_write_byte((uchar)(read_cmd>>7)&CH452_MASK|CH452_ADDR|0x01);
查看: 3478
回复: 1
求助,谁能给一个CH452 16位的读写函数的具体解释
热门产品 :
CH592: RISC-V内核BLE5.4无线MCU
ch452_write_byte((uchar)(command>>7)&CH452_MASK); 这部分是屏蔽掉命令参数的无用位,并把最低位置0,表示写操作,|ADDR表示选中接高电平的那片Ch452。ch452_write_byte((uchar)(read_cmd>>7)&CH452_MASK|CH452_ADDR|0x01);相比此处多了0x01,即把最低字节置1,表示读操作,这个结合手册上的读写时序就比较明白了。
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录