STM32的I2S接口只支持单工模式,使用时要小心

发布者:SparklingStar最新更新时间:2024-10-16 来源: cnblogs关键字:STM32  I2S接口 手机看文章 扫描二维码
随时随地手机看文章

刚开始设计硬件的时候没仔细看手册,想当然,把I2S_SD连接到PCM CODEC输入,MISO连接到CODEC输出,结果做软件的时候遇到麻烦才回头看手册,傻眼了,STM32的I2S数据线只有一根I2S_SD,要么输入,要么输出,跟全双工CODEC没法通讯,这一点跟NXP LPC和比是个很大的败笔。


解决方法(PCM接口模式):将STM32工作在SPI SLAVE方式,MOSI接CODEC输出,MISO接CODEC输入,SCK接BCLK,任意一个PIO作为中断输入与FRAME SYNC连接。


如果想使用DMA,需要将帧频率(采样频率)设置为BCLK的字长倍,比如16bit字长,采样频率8K,则Fsync设置为8K*16=128K,当一个FSYNC中断后设置DMA,后续即可连续输入/输出。


关键字:STM32  I2S接口 引用地址:STM32的I2S接口只支持单工模式,使用时要小心

上一篇:STM32 USBHID应用
下一篇:uCosII移植到STM32触发中断、任务切换的汇编学习

推荐阅读最新更新时间:2024-11-17 10:30

STM32—IWDG独立看门狗的使用
STM32---IWDG独立看门狗的使用 独立看门狗(IWDG)由专用的40kHz的低速时钟驱动, 即使主时钟发生故障它也仍然有效。 窗口看门狗由从APB1时钟分频后得到的时钟驱动, 通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 IWDG最适合应用于那些需要看门狗作为一个在主程序之外, 能够完全独立工作,并且对时间精度要求较低的场合。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。 IWDG主要性能 ●自由运行的递减计数器 ●时钟由独立的RC振荡器提供(可在停止和待机模式下工作) ●看门狗被激活后,则在计数器计数至0x000时产生复位 在键寄存器(IWD
[单片机]
stm32 启动过程
当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由编译器在编译时自行分配,这样一来main函数的入口地址在微控制器的内部存储空间中不再是绝对不变的。相信读者都可以回答这个问题,答案也许大同小异,但肯定都有个关键词,叫“启动文件”,用英文单词来描述是“Bootloader”。 无论性能高下,结构简繁,价格贵贱,每一种微控制器(处理器)都
[单片机]
STM32标准库改为HAL库的程序实现
标准库占绝大多数,自己买的板子跟的资料也一般是标准库,HAL库很少,不过要是使用STM32CubeMx配置,那么就是使用的HAL库了,而参考资料是标准库的,就没有办法用。 注意: 1. 标准库与HAL库不兼容,不要想着直接拿来用了,比如标准库使用#include stm32f10x.h ,HAL库使用#include stm32f1xx_hal.h 要让标准库程序使用HAL库时也可以正常运行得到想要的结果,有以下几种方法: 一、 将标准库程序中的每个函数内的代码修改为使用HAL库且同样效果的代码, 比如标准库中配置GPIO的代码直接就可以用STM32CubeMx配置为相同效果 二、根据标准库程序整个程序运行的原理使用HAL库
[单片机]
STM32学习日志——基于NT35510驱动芯片的LCD屏显示
之前写过关于LCD屏的学习日志,当时学得很懵逼,最后先暂时跳过,把教材的例程当成库函数来用,等后面开窍了再回过头来学习一遍。回想大学学习51单片机的时候,也是觉得LCD屏很困难,我觉得新手很容易就在这里从就入门到放弃了,因为相比前面的知识,个人认为LCD算是一个比较复杂的外设,难度有阶梯式的上升。再加上学习的教材为了兼容各种驱动芯片,程序看起来比较乱。所以这次单把NT35100这款驱动芯片拎出来分析学习。 这里使用的是ATK-4.3'TFTLCD模块,他是采用NT35510芯片驱动,分辨率为800*480,自带GRAM。 ATK-4.3’ TFTLCD模块正面图 一、引脚与GRAM 它一共有34个引脚。原理图及
[单片机]
STM32编译错误Error:A1067E
tartup_stm32f10x_hd.s: Error: A1067E: Output file specified as 'startup\startup_stm32f10x_hd.s', but it has already been specified as '.\obj\startup_stm32f10x_hd.o' 只需在Device中选定你所用的芯片,如果显示Device已经选定过,还出现该错误,就更新一下。
[单片机]
<font color='red'>STM32</font>编译错误Error:A1067E
STM32高级开发(2)-安装使用ubuntu
作为一切开发的起点,我们首先要安装一个Linux发行版系统作为我们开发的最基础的支持性平台,这里推荐下载ubuntu系统,ubuntu可以说是近些年来最流行和使用广泛的Linux发行版系统了。 安装虚拟机软件 这里我默认大家使用的系统是windows。所以接下来的一切介绍都已这个为前提。 要安装虚拟机我们有两个选择: 1. VMware Workstation 2. VirtualBox 前者是一个商业化软件,需要付费才能够正常使用,当然你也可以破解。关于方法网上全是我想就不用我过多介绍了。而后者是一个开源软件,自然地功能性上可能有一些欠缺但也还算够用。当然啦,如果有条件还是用前者吧~ 下载ubuntu系统安装文件 htt
[单片机]
<font color='red'>STM32</font>高级开发(2)-安装使用ubuntu
stm32全称是什么
  stm32全称是意法半导体32位系列微控制器芯片。   ST即意法半导体(STMicroelectronics)。   意法半导体 (STMicroelectronics) 集团于1987年6月成立,是由意大利的SGS 微电子公司和法国Thomson 半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics 将公司名称改为意法半导体有限公司,意法半导体是世界最大的半导体公司之一。从成立之初至今,ST 的增长速度超过了半导体工业的整体增长速度。自1999年起,ST 始终是世界十大半导体公司之一。据最新的工业统计数据,意法半导体 (STMicroelectronics) 是全球第五大半导体厂商,
[单片机]
STM32微控制器中采用DMA实现方波的产生和捕获
  1 STM32微 控制器 介绍   STM32系列微控制器是ST公司基于Cortex-M3内核的高集成度的微控制器。它在性能、价格、功耗和实时性方面树立了一个新的标杆,集成了Cortex-M3内核,以及双ADC、多用途的通用 时钟 TIMx、RTC、I2C、SPI、UART、 CAN 、DMA、 USB 等丰富的 外设 。其功耗在全速72MHz所有模块都打开时也仅仅为36 mA,在低功耗模式下其功耗仅为2μA。   2 DMA和TIMx简介   STM32系列微控制器均含有DMA和通用时钟TIMx模块。其低端型号中仅包含DMA1,支持7个通道;高端型号还包括DMA2,支持5个通道。它的每个通道可任意指定工作模式,如
[电源管理]
<font color='red'>STM32</font>微控制器中采用DMA实现方波的产生和捕获
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved