2023-11-30
1.两个灯闪烁出现了问题
解决方法:程序中定时器分频系数和想要设置的分频系数少一位
经验:LED灯闪烁出现问题很有可能是定时器分频系数或者重装载值因为大意敲错了
2.软件模拟IIC
3.宏定义
如果一个对象
(1)在程序中多次出现,而且后续可能会进行改动(一旦更改就会改好多地方)
(2)这个对象的语义不够明确
那么这个时候就应该考虑宏定义
有参宏的使用
如果一个函数
(1)在程序中多次出现,而且它的一部分形参每次出现的时候都相同
那么这个时候就可以使用有参宏,将那些每次函数出现的时候都有不同值的形参作为有参宏的"参"
其中BitAction将有参宏的参数强转为形参的类型
宏定义的缺点
(1)不方便移植,比如STM32向引脚写入电平的函数是GPIO_WriteBit,但是51单片机直接就是P10=0/1
(2)如果芯片的主频很快也就是高低电平的持续时间较短,外接设备可能跟不上这么快的主频,这就需要延长高低电平的持续时间
综上,可以采用函数封装的方式解决上述问题
4.IIC实现检查设备上是否有某一从机的功能
也就是起始位+从机地址+写标志位+主机接收从机应答的程序+停止位,如果主机接收到应答代表有这个设备否则没有
5.寄存器地址的问题
如果一个设备的寄存器较多,我们可以将所有寄存器的宏定义写在一个.h文件里,然后要使用这些寄存器的文件包含这个.h文件就可以了
标签:分频,基于,定义,形参,检测,参宏,从机,寄存器,Lora From: https://www.cnblogs.com/Sandals-little/p/17868652.html