ARM芯片有些寄存器,如USB端点寄存器,包括多位的toggle位。如下图:

例如,这个寄存器便有6个 t 位(toggle):14,13,12,6,5,4
配置寄存器时,如果bit6为0,在 bit6写如1,可以将bit6置1。
但是这样操作之后,原本其他5个toggle位上有1的会变成0。
为什么会这样呢?手册上说明toggle位写1翻转,只针对该位,应该不影响其他toggle位
Jian Zhou:
请问你是按照寄存器与非的读写方式操作寄存器的某个位吗?
fuwenjia:
回复 Jian Zhou:
用bit-banding写1至此位,和用 寄存器 |= 0x0040 至此位为1,看到的结果是一样,都把其他状态为“1”的toggle位变成了0
TI中文支持网


