历史上的今天
返回首页

历史上的今天

今天是:2025年03月30日(星期日)

正在发生

2021年03月30日 | STM32之SPI的思考

2021-03-30 来源:eefocus

选择了与硬件打交道,就得戒骄戒躁,踏踏实实,一步一步的走下去。可能因为一个非常小的问题,就导致你失败。失败不可怕,可怕的是不能静下心来去思考。我在公司第一次调试硬件,spi的通信,是stm32的硬件既有的通信接口。之前用51的io口模拟过i2c的,感觉spi相对来说更简单些,结果调试spi的读写花费了我3天的时间。stm32f0与网上关于stm32f1大量的例程还不一样,刚刚上市半年多,应该是,并且有几项设置是stm32f1没有的,这也正是关键的地方。你直接把他们的程序拿过来用,可能就卡死了,为什么?因为f0多了个fifo设置,fifo不设置,默认应该是half of 32 bits,当你只接收到8个bit时,rxne不会置位,程序会一直在这里等待。或许你会说,加一个容错处理不就完了。但是这样,可能读完后,数据是缺少第一个byte和最后一个byte的,还可能出现只读到偶数位的数据(与数据处理有关),因为在读第二个的时候读到的其实是fifo中的低8bit,高8bit如果没有处理可能就丢了,比如你定义的接收数据为unsigned char,高8bit就被滤掉了。如果接收的数据byte数为奇数,可能最后一byte可能就读不出来了,直到下次再有数据才能把它挤到高8bit上。这样读出的数据怎么也不会正确了。


为避免这种情况,设置下fifo就可以了,满了8bit就置位rxne,就可以读走接收到的数据。fifo设置为与通信数据bit数相同就行了。


spi的收发可以设置为全双工模式,但是时钟却都是由主机控制的,在读从机数据时,需要发送从机内部数据的地址,接着需要提供要求的n个时钟信号,才能把从机的数据读出来。这时需要发送无效的数据位来产生时钟,无效数据一般可以为0xff或者0x00,这个需要根据不同主机在使能后mosi线的电平以及从机设备要求来确定。


另外硬件spi需要设置相关的时钟极性,以及第一个时钟沿还是第二个时钟沿读取数据。stm32f0需要设置时钟线在闲置时的电平上拉还是下拉。


spi通信配置

1、GPIO时钟使能,SPI时钟使能。


2、配置GPIO片选,推挽输出,上拉;SCLK、MOSI、MISO所用到的引脚为复用功能;SCLK下拉,MOSI推挽复用,MISO无推挽。


3、SPI初始化,配置工作模式为全双工,主机模式,SCLK闲时电平为低,第二个时钟沿(下降沿)采样数据,SCLK时钟128预分频,CRC校验置默认值0x07,内部从机选择软件管理模式。设置接收FIFO为四分之一,内部从机选择设置为主机(置1),使能SPI。


4、从机设备一般上电是默认写使能的,因此若需要读取数据先关闭写使能。


5,stm32f0在使能spi后,miso和mosi都被拉低,因此在读取从机数据时,需要先发送的无效数据为0x00

推荐阅读

史海拾趣

Eris Technology Corp公司的发展小趣事

进入21世纪后,汽车电子市场蓬勃发展,为Eris Tech提供了新的发展机遇。公司凭借在半导体技术方面的积累,成功开发出多款适用于汽车电子系统的半导体产品,如功率管理芯片、传感器等。这些产品不仅提高了汽车电子系统的性能,还降低了成本,赢得了汽车厂商的广泛认可。随着汽车电子市场的不断扩大,Eris Tech的营收也实现了快速增长。

FSP [FSP TECHNOLOGY INC.]公司的发展小趣事

Eris Technology Corp公司自1995年成立以来,一直致力于半导体及相关技术的研发。在成立初期,公司面临激烈的市场竞争和技术挑战。然而,通过不断的研发投入和人才引进,Eris Tech成功开发出一款高性能的二极管产品,并凭借其优异的性能赢得了市场的认可。随着产品线的不断丰富和市场布局的逐渐完善,Eris Tech逐渐在电子行业中崭露头角。

EMC [ELAN Microelectronics Corp]公司的发展小趣事

为了进一步扩大市场份额,义隆电子积极实施国际化战略。公司在台湾新竹科学园区设立了全球营运总部,并在亚、美等二大洲建立了密集的行销暨技术中心。通过不断拓展国际市场,义隆电子的产品已经销售到全球各地,赢得了广泛的客户认可和信赖。同时,公司还积极寻求与国际知名企业的合作机会,共同推动行业技术的发展和创新。

ALD [Advanced Linear Devices]公司的发展小趣事

义隆电子一直注重人才培养和团队建设。公司积极引进国内外各知名学府的优秀人才,并提供完善的在职培训和优厚的福利待遇。同时,公司还建立了高效的团队协作机制,鼓励员工之间的交流和合作。这种注重人才培养和团队建设的策略使得义隆电子能够保持持续的创新能力和市场竞争力。

Gilway Technical Lamp公司的发展小趣事
根据实际需要合理调节冰箱温度,避免温度设置过低或过高。
Auris公司的发展小趣事

Auris公司的创始人Federic Moll博士,被誉为手术机器人之父。他在2007年创立了Auris Health(原名Auris Surgical Robotics),总部位于美国加利福尼亚州圣卡洛斯。Moll博士此前已经成功创办了多家手术机器人企业,其中最为知名的是上市公司Intuitive Surgical,其达芬奇手术机器人技术已在全球范围内广泛应用。Moll博士的深厚技术背景和丰富的创业经验为Auris的起步奠定了坚实的基础。

问答坊 | AI 解惑

蓝牙的技术内容

蓝牙技术产品是采用低能耗无线电通信技术来实现语音、数据和视频传输的,其传输速率最高为每秒1Mb/s,以时分方式进行全双工通信,通信距离为10米左右,配置功率放大器可以使通信距离进一步增加。 蓝牙产品采用的是跳频技术,能够抗信号衰落;采用 ...…

查看全部问答>

需要推荐软件测试书?

  我是做网站设计的,对程序有一定的了解,自学软件测试快一个月了,常常是下班后自己在网上找资料看看,但是现在感觉头很大,知识很混乱,不知道怎么系统的去学习,哪位高手可以帮我出点主意吗,有什么好的参考资料吗?谢谢啦…

查看全部问答>

夜深了,出个解决方案,让stm32f的CRC32主流化:

//CopyRight:www.mcuisp.com//版权: 单片机在线编程网详细代码请到www.mcuisp.com下载…

查看全部问答>

【MSP430共享】空调压缩机数据无线采集系统的研究术

针对空调压缩机有线数据采集系统存在的不足, 结合空调压缩机的结构特征,从传感器节点的低成本低功耗角度发, 利用单片机 MS P 4 3 0和n R F 9 0 5芯片在电池供电的低功耗应用中具有的优势, 提出了一种无线数据采集系统的方案。 该方 案利用n R F ...…

查看全部问答>

各位大牛都来看看可怜的成都菜鸟境遇

本人现在成都,因为参加各种竞赛没有去去学校安排的实习地方,现在事情已经完了,接下来就是找工作的事,可是一看网上的要求都是工作经验和啥子精通的,说实话我们大学本科毕业的最多就是了解或者熟悉,精通这个词对于我们来说太恐怖了,在学 ...…

查看全部问答>

zigbee无线发送模块的设计如何来学习长城2480啊?

    我是最近才接触zigbee的,要完成一个zigbee无线发送模块的设计课题,给出的参考设计方案是cc2480和MCU实现,我最近下了一些关于cc2480的管脚图和管脚说明,但是发现还是不容易看懂啊 ,不知道这个课题该从什么方面着手,请高人 ...…

查看全部问答>

求MSP430F425开发板上LCD-048 的资料。

小弟要画PCB板。。 没LCD-048 的封装数据…

查看全部问答>

32位ARM字符串和8位C51字符串区别

请教一个问题,我用的LM3S6911芯片,把C51字库操作移植过来,结果显示字符是不对的!不知道哪位能否给出移植的指示!我怀疑就是需要重写或者需要下载支持软件!比如一个字符串,51用多长来表示,LM3S6911又是用多长来表示呢?…

查看全部问答>

驾驶助理技术商Mobileye融资4亿美元

驾驶助理技术商Mobileye融资4亿美元 腾讯科技讯(中涛)北京时间7月8日消息,据国外媒体报道,总部位于荷兰阿姆斯特丹的汽车驾驶助理技术开发商Mobileye周日表示,该公司近日已进行了新一轮融资,融资总额约为4亿美元,5家机构投资者对Mobileye的 ...…

查看全部问答>