STM32F10x SPI/I2S固件库时钟蜂鸣器控制器详解

需积分: 4 36 下载量 181 浏览量 更新于2024-08-06 收藏 13.02MB PDF 举报
"STM32F10X_SPI_I2S中文手册" STM32F10X系列微控制器提供了一种功能,称为时钟输出/蜂鸣器输出控制器,这在第十一章中有详细描述。该控制器允许用户通过SPI或I2S接口输出自定义频率的时钟信号,并能控制蜂鸣器的输出。这个特性对于需要精确定时或音频应用的系统非常有用。 时钟输出选择寄存器(CKS)位于地址FF40H,其复位值为00H,且是读写可访问的。该寄存器有多个字段,包括BUZOE、BCS1、BCS0、CLOE、CCS3、CCS2、CCS1和CCS0,用于配置不同的时钟和蜂鸣器输出。 BUZOE(BUZ 输出允许/禁止)位控制蜂鸣器输出。当BUZOE为0时,时钟分频电路停止工作,BUZ引脚被固定为低电平。而当BUZOE为1时,BUZ输出允许,可以按照设置的分频系数输出时钟。 BCS1和BCS0字段用于设定BUZ输出时钟的频率,配合fPRS(外设硬件时钟频率)可以得到不同频率的输出。例如,当BCS1和BCS0分别为0和0时,BUZ输出的频率为fPRS/210。 CLOE(PCL输出允许/禁止)位与BUZOE类似,但控制的是PCL输出。当CLOE为0时,PCL固定为低电平,为1时,PCL输出允许。CCS3到CCS0字段则用于设置PCL输出时钟的频率,根据不同的组合,可以得到从fPRS到fPRS/27的多种时钟分频。 此外,手册中还提到了外设硬件时钟fPRS的工作频率与供电电压的关系。在高系统时钟模式(XSEL=1)下,fPRS的最大频率会随VDD的变化而变化。在1.8到2.7V的电压范围内,fPRS的最大频率为5MHz;而在2.7到5.5V的电压范围内,最大频率为10MHz。 同时,当禁止蜂鸣器输出(BZOE=0)时,应设置BCS1和BCS0。同样,如果禁止时钟输出(CLOE=0),则需设置CCS3到CCS0。 需要注意的是,当外设硬件时钟fPRS在内部高速振荡器时钟(fRH,XSEL=0)模式下工作,且1.8V≤VDD<2.7V时,设置PCL输出时钟(CCS3=CCS2=CCS1=CCS0=0,即fPRS)会被禁止。 STM32F10X的时钟输出/蜂鸣器输出控制器提供了灵活的时钟和音频信号产生能力,可根据实际需求进行精细调整。在使用时,应确保参考最新的产品信息,以适应可能的变更。