0.3 学习Stm32经历过的磨难

文章目录

    • [用库函数传参 能否按位或](#用库函数传参 能否按位或)

用库函数传参 能否按位或

答案是看清况,而不是一股脑的写!(血泪的经验啊)

  • 可行的情况:
c 复制代码
//如gpio初始化结构体中的gpiopin参数
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;
//或是exti初始化结构体中EXTI_Lines参数
EXTI_InitStructure.EXTI_Line = EXTI_Line0 | EXTI_Line1;


由上图可知:这些可以用"按位与"的方式传参的都是一个二进制位表示一个特定名称的

  • 不可行的情况
c 复制代码
这里按位与会 死的很惨 不要问我怎么知道的(真的崩溃)
	GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0 | GPIO_PinSource1);

来一探究竟

复制代码
可见其中并不满足一个特定量占一位的原则,如GPIO_PinSource0与GPIO_PinSource1
0000 0000 如果与上  0000 0001 那么将得到0000 0001 
自然无法区分两个量

总结

在不知道能否按位与传参的时候要

  1. 右击参数类型查看definition
  2. 根据参数的位分配判断能否按位与传参

相关推荐
心中有国也有家43 分钟前
E-Brufen 技术选型全景:Flutter + 鸿蒙 + Hive CE
hive·hadoop·学习·flutter·华为·harmonyos
New农民工1 小时前
射频芯片学习-ExpressLRS 对频流程分析
学习
Tom@敲代码2 小时前
js学习笔记-01
javascript·笔记·学习
省四收割者2 小时前
一文详解信号完整性(3)--规避SI问题的具体实现方法
嵌入式硬件·硬件架构·信号处理·智能硬件·pcb工艺·altium designer
辞旧 lekkk2 小时前
【Qt】 系统相关:事件与定时器
开发语言·qt·学习·萌新
zzzll11113 小时前
如何学习AI Agent?
java·人工智能·学习·程序员·大模型
默默敲代码的徐哥儿3 小时前
八股文整理——后端
java·开发语言·spring boot·后端·学习
巴巴媛6663 小时前
STM32学习笔记【32.BKP + RTC】
笔记·stm32·学习
KaifuZeng4 小时前
通信与接口协议面试十一、网口
嵌入式硬件·面试·通信与接口协议