请教一个i2s的问题,我在使用STM32,型号为STM32F103VCT6,该型号单片机为大容量单片机。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教一个i2s的问题,我在使用STM32,型号为STM32F103VCT6,该型号单片机为大容量单片机。相关的知识,希望对你有一定的参考价值。

该型号单片机有i2s接口,可是该接口和spi复用,CK、WS、SD,而我在该芯片资料上没有发现MCLK,我该怎么做,到底那个接口可以连接MCLK,用io模拟速度够吗?

参考技术A 就是MCK,提供时钟信号的,在ZET6上用过,貌似用的是pc6本回答被提问者采纳 参考技术B 1.i2c总线需要两根数据线:SDA和SCL,数据的收发都是靠这两根线完成的。与MCLK无关。
2.SPI总线通讯需要4根线:SCLK(时钟)、MOSI(主发从收)、MISO(从发主收)和CS(从设备片选线)。
3.如果需要使用i2c,那就在初始化程序时候使能i2c就行了。如果需要使用spi,就定义成spi。反正这两个不能同时用。如果非要同时用,就必须做下管脚映射。我用的是STM32F103RBT6,i2c的SCL就可以从58脚映射到61脚。
4.i2c用IO模拟完全可以实现,我就这么做的。据说STM32的i2c有bug,不如直接用IO模拟,嘿嘿。
参考技术C 你是要做个HIFI播放器吗? 把无损转换为i2s,出来

stm32f103各个型号芯片之间程序移植(stm32的兼容问题)

1.stm32f103系列的各个型号的芯片差别一般不大,都是一些flash大小不一样,一般是向下兼容(大容量芯片兼容中容量芯片)还有晶振大小不一样。

                                  

                                                                            

2.本次移植项目

麒麟用的是stm32f103系列芯片,本次以f103c8t6最小系统板为本次移植目标板,理论上移植是不需要更改任何代码的,但是麒麟座用的外部晶振是12MHz的,而市场上大部分厂家生产的开发板外部晶振为8MHz。因此需要更改一些配置参数。

3.在stm32f10x.h 文件中找到箭头所示的位置(119行),将12000000改为8000000【将外部晶振频率配置为8MHz】

4.在左侧工程文件栏找到  system_stm32f10x.c 双击打开

5.找到如图所示的位置,将倍频系数改为9倍频【外部晶振8*9=72Mhz】72Mhz是stm32f103系列芯片理论上的最大运行速度

到这里基本就配置好了,可以编译下载到目标开发板了。

 

以上是关于请教一个i2s的问题,我在使用STM32,型号为STM32F103VCT6,该型号单片机为大容量单片机。的主要内容,如果未能解决你的问题,请参考以下文章

STM32F103 + 0.96/1.3“ I2C OLED + EC11旋转编码器多级菜单demo

请教STM32的 SPI 同时中断收发问题

STM32F103VET6基于STM32CubeMX 配置硬件I2C驱动ssd1306 OLED屏幕

STM32 OLED屏(I2C接口)显示

stm32F407的硬件I2C稳定吗

带有 DMA 的 STM32 I2C 传输已完成,但 DMA 中断程序不工作