- 打卡等级:常住居民III
- 打卡总天数:135
- 最近打卡:2024-12-25 10:15:05
荣誉版主
冲哥视频教程和各种开源资料QQ交流群884047237,可群
- 积分
- 8058

|
发表于 2024-2-23 10:04:56
|
显示全部楼层
本帖最后由 电子DIY小家 于 2024-2-23 11:16 编辑
因为这个历程是这样用的:
正常情况下想要用P4.6 P4.7,是不是就按照如下的写法就可以了,
P_SW2 &= ~0x01;
P_SW2 |= 1; //UART2 switch to: 0: P1.0 P1.1, 1: P4.6 P4.7
但是如果想要切换到 P1.0 P1.1,是不是就要像下面这样写了
P_SW2 &= ~0x01;
P_SW2 |= 0; //UART2 switch to: 0: P1.0 P1.1, 1: P4.6 P4.7
可以看到上面的切换到 P1.0 P1.1引脚上的写法,因为是或等于的写法,如果这个位本身是1那将是无法写入的,所以为了程序的通用,直接先把这个位清0了在写入(这种写法也是为了方便多组引脚选择)。
那么问题来了其实本身,引脚切换也可以直接一行完成,比如:
选择 P4.6 P4.7就是: P_SW2 |= 1;
选择 P1.0 P1.1就是:P_SW2 &= ~0x01;
当然学得好的直接这样写就OK了,但是对于新手这样就不好理解了,尤其是两个位去从四组引脚里选择的这样写就更难了~
|
|