
使用STM32F072C8T6芯片驱动OLED,从F103标准库移植到HAL库,发现一个很奇葩的问题。 如果用HAL库内的 HAL_SPI_TransmitReceive 函数,SCK可以正常发出8bit的波形。 但自己写的驱动函数,SCK都会发出16bit的波形。 正常的8bit波形: ![]() 异常的16bit波形: ![]() 经过对HAL库单步调试发现,原来是DR寄存器的访问地址方式,决定了SCK的位数!!!!! 与F1系列不同的是,F0的SCK的位数并不受CR2的DS位约束 DR如果看作是16bit地址写入,SCK发出16bit长度。就算是DS标志工作在8BIT模式! DR看作是8bit地址写入,SCK发出8bit长度。 ![]() 而是根据DR寄存的写寄存器地址长度决定的! ![]() |
NUCLEO-H723ZG开发板试用 ——串口点灯测试
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
MultiButton移植到STM32F103战舰开发板
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
S2LP 的 sniff 模式如何同时满足通讯和低功耗要求
双证齐发!移远通信通过ISO 26262功能安全流程认证及产品认证
意法半导体 STHV200超声波 IC单片简化设计
了解NFC技术优势与应用场景
基于STM32软件实现底层函数经验分享—IIC通信