
一个MCU芯片上有两个TM1637芯片,这两个芯片的SCL引脚分别为PB3、PC12;SDA引脚分别为PB4、PD2。通信的时候采样模拟I2C的方式进行通信,则对于这样的模块,驱动程序是否需要分开写????? 如果分开写,相当于重复做同样的工作,代码不简化!!!! 但如果放一起,又应该如何处理呢? |
stm32f407无法配置定时器2为全部dma
STM32F103TBU6 封装是VFQFPN36 将PD0和PD1配置成CAN不成功是什么原因
串口DMA + 空闲中断收发 ?
F103RCT6芯片对AFIO->MAPR寄存器写入时出错
使用STM32捕获PWM时同时捕获2个通道时会出现捕获的频率值不准确的问题
WS2812B怎么显示任意字符 / 图案?
STM32F103RCT6 定位孔 镂空,会影响使用吗?
HAL库1.8.4在做破坏性测试的时候出现g_state永远为busy的情况导致串口通信发送卡死
L9663驱动开发
用rt_thread 环境编写,DAP-LINK 下载烧录,每一次空芯片下载之后就无法二次下载。求解
简单点就是加个变量控制。在驱动里判断变量为0时用这个I2C的io,为1就用另外的I2C的io。
set_scl(var)
{
if(var) PB3=1;
else PC12=1;
}
clr_scl(var)
{
if(var) PB3=0;
else PC12=0;
}
TM1637没看到地址设置,所以要分开写。
若想代码整齐点,尽量采用函数的方式。速度足够快,不会影响显示的。
既然选择使用2组GPIO,即使写两套也没啥,代码结构清晰即可。也不至于增加多少代码量。
或许有人包括本人会考虑加些判断语句执行,感觉上是一套了,最终也要看个人最后选择。
如果其他人有更好方案,欢迎分享。