GPIOB->BSRR //bit3变1其他不变
GPIOB->BSRR //bit20变0其他不变
GPIOB->BSRR //bit5变0其他不变
GPIOB->BSRR //bit12变1其他不变
GPIOB->BSRR //bit4变1其他不变
GPIOB->ODR = //将0101_1010_0011_1011化为16进制
GPIOB->ODR = //将0010_1000化为16进制
变成:
GPIOB->BSRR |= (1<<3); //bit3变1其他不变
GPIOB->BSRR &= (~(1<<20)); //bit20变0其他不变
GPIOB->BSRR &= (~(1<<5)); //bit5变0其他不变
GPIOB->BSRR |= (1<<12); //bit12变1其他不变
GPIOB->BSRR |= (1<<4); //bit4变1其他不变
GPIOB->ODR = 0x5A3B; // 之前的数据是 0101_1010_0011_1011
GPIOB->ODR = 0x28; // 之前的数据是 0010_1000
cat USER/main.mother.c \
| sed 's/\/\/bit\(.*\)变1其他不变/ |= (1<<\1); \/\/bit\1变1其他不变/g' \
| sed 's/\/\/bit\(.*\)变0其他不变/ \&= (~(1<<\1)); \/\/bit\1变0其他不变/g' \
> USER/main.c
echo hi | sed '1d' > ztmp
cat USER/main.mother.c | grep 化为 | sed 's/.*将\(.*\)化.*/\1/g' \
| xargs -i bash -c "echo {} | tr '_' '\n' | sed 's/\(.\)/\1 /g' | awk '{print 8*\$1+4*\$2+2*\$3+1*\$4}' | sed 's/^/ obase=16; ibase=10;/g' | bc | tr '\n' ' ' | sed 's/ //g' | sed 's/^/0x/g' ; echo {} | sed 's/^/; \/\/ 之前的数据是 /g' ; " >> ztmp
cat ztmp |sed 's/\//@/g' | xargs -i sed '0,/..将.*化为16.*/{s/..将.*化为16.*/{}/1}' -i USER/main.c
sed -i 's/@@/\/\//g' USER/main.c
网友评论