在ch32v103的操作中,有这样的方式可以通过寄存器设定整组gpio的电平:
GPIOB->OUTDR=0x55FF
这句代码的的意思是这样,GPIOB共有16个IO,其中0x55ff换算成二进制就是0101010111111111,最右侧也是个位数字,代表的是IO0的状态。
如果只是想修改某个io的值比如IO2,那就需要写入0B100,但是如果直接这样写入,不只是影响了IO2,也同时把IO1、IO0写入了0。
这时,可以先读出原本的IO状态,然后对0B100求或,那么就只改变了一个IO。
当然,如果是想把IO2写入0,可以对0B1011求与。(假设只有四个IO就是对0B1011求与;如果16个io就要对0B1111 1111 1111 1011求与,即0XFFFB求与)