历史上的今天
返回首页

历史上的今天

今天是:2024年09月11日(星期三)

正在发生

2019年09月11日 | STM32 SPI发送与接收用一个函数实现的问题

2019-09-11 来源:eefocus

今天使用STM32F407读取flash中的数据的实验中,发现一个问题读取到的问题一直不对,找了半天问题,后面找到原子的例程看了一下,发现是SPI数据的读取与发送函数写的有问题,我原本的发送与接收函数是单独的两个函数,而原子的发送与接收函数全都放在 一起。看了半天没搞懂为什么要这么写,但这么写读写确实正常,网上找了找终于找到了一个解答,因此分享出来,方便自己记忆也方便遇到同样问题的人能尽快找到解决办法。


u8 SPI1_ReadWriteByte(u8 TxData)

{

while((SPI1->SR & SPI_I2S_FLAG_TXE) == (uint16_t)RESET);


 SPI_I2S_SendData(SPI1, TxData);


 while((SPI1->SR & SPI_I2S_FLAG_RXNE) == (uint16_t)RESET);  

return SPI_I2S_ReceiveData(SPI1);


}

发送与接收为什么这么写?

首先我们 要知道数据寄存器(SPIX->DR)分为 2 个缓冲区,一个用于写入(发送缓冲区),一个用于读取(接收缓冲 区)。对数据寄存器执行写操作时,数据将写入发送缓冲区,从数据寄存器执行读取时,将返回接收缓冲区中的值。因此这样写并不会出现读到的数据等于发送的数据,而且发送与接收在全双工通信模式下是并行进行的。另一个要注意的问题,因为从模式是没法提供时钟的,所以主模式下必须要在接收的同时提供时钟。办法就是发送一个字节来实现,因为还是上面说的,发送一个字节就意味着收到一个字节,代码和写完全一样,只要把读出来的字节保存即可。

推荐阅读

史海拾趣

捷嘉电子(Chequers Electronic)公司的发展小趣事

在国内市场取得一定成绩后,捷嘉电子开始将目光投向国际市场。通过与国外知名企业的合作,公司成功将产品出口到数十个国家。这一过程中,捷嘉电子不仅面临着文化差异、法律法规等挑战,还需要应对国际市场竞争的复杂性。然而,凭借着过硬的产品质量和专业的服务,捷嘉电子逐渐在国际市场上赢得了良好的口碑。

ENPIRION公司的发展小趣事

在电源管理领域,ENPIRION公司不断面临各种技术挑战。例如,如何满足企业级、工业级、通信等市场对产品的高可靠性要求?如何提供最优的电源转换率以降低成本和散热?为了应对这些挑战,ENPIRION公司不断投入研发力量,推出了一系列创新的电源管理解决方案。这些解决方案不仅满足了市场的需求,还进一步巩固了ENPIRION公司在电源管理领域的领先地位。

Bogen Communications Inc公司的发展小趣事

在追求经济效益的同时,Bogen Communications Inc公司也积极履行社会责任,致力于可持续发展。公司注重环保和节能技术的研发和应用,努力降低产品对环境的影响。同时,公司还积极参与公益事业和慈善活动,回馈社会。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

以上这些故事都是基于电子行业常见的发展模式而虚构的示例,旨在为您展示一个电子行业公司可能经历的不同发展阶段和挑战。如果您需要更具体、更详细的信息关于Bogen Communications Inc公司的发展故事,建议您查阅相关的行业报告、公司年报或新闻报道。

Gumstix公司的发展小趣事
检查电路中是否有异物导致短路,清理异物并修复受损部分。
Fremont_Micro_Devices_USA公司的发展小趣事
检查压敏元件是否老化或受到污染,必要时更换新的压敏元件。同时,也可以考虑调整电路参数以提高灵敏度。
Fairchild Imaging公司的发展小趣事

Fairchild Imaging一直致力于成像技术的创新。在XXXX年,公司成功研发出一款具有划时代意义的图像传感器,该传感器以其高清晰度、低噪声和宽动态范围等特性,赢得了市场的广泛认可。这一技术的突破不仅为Fairchild Imaging赢得了众多客户的青睐,还为公司后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

芳香气体透过性检测方法

芳香气体广泛存在于食品、药品、化妆品和各种日化产品中,例如风味小吃、白酒、香料、中药材、膏药、香水、香皂、洗发水等等。与无机气体和水蒸气不同的是,多数芳香气体是由产品自身散发出来的,而且更是这些产品的重要品质和主要功能(有些也是唯 ...…

查看全部问答>

增强型80C51单片机速成与实战

本帖最后由 paulhyde 于 2014-9-15 08:57 编辑 不错的书0哦  …

查看全部问答>

十万火急,,有没有汇编高手??我有个汇编程序小地方要修改,,要高手

哪个厉害发我邮箱   puyiyue1980@126.com 帮个忙,,十万着急,,着急的不行,,吃饭不下…

查看全部问答>

学了DSP一段时间,感觉嵌入式软件开发好像全是软件的问题呢。

      可能是因为我用的学校提供的现成的试验箱吧,功能比较齐全,北京合众达的DM643的箱子。        从学习DSP开始,都觉得在跑例程、改写、编写程序中,困难最多的都是软件方面的问题,像是基本语法、 ...…

查看全部问答>

装了CE60 R3后怎么编译不了系统,老是停在某个地方,等多久都不动的。不会是CE60 R3的版本问题吧?!

装了CE60 R3后怎么编译不了系统,老是停在某个地方,等多久都不动的。不会是CE60 R3的版本问题吧?!…

查看全部问答>

VS2008与WINCE 5.0问题 请高手不吝赐教

小弟做WM很久。最近公司要做一WINCE 5.0的开发板的程序。废话不多说,问题如下: 用EVC+WINCE 4.2调试速度太慢,于是想换VS2008+WINCE 5.0(因开发版是5.0,所以不能用WINCE6.0) 我用PB 5.0弄好一个WINCE 5.0的模拟器,也生成了相关的SDK。在EVC4 ...…

查看全部问答>

为什么bb5系列无法解网络

为什么NokiaBB5系列无法解网络? 比如说绑定美国cingular的Nokia E62 我做了很多搜索,没找到可以解锁的办法。(除了向cingular索取解锁密码) 在下学浅,觉得电话跟电脑差不多,如果靠密码能解锁的话,一定是软件上的限制,重写成出厂设置应该 ...…

查看全部问答>

IIC学习经历以及CAT1024/25

  对于IIC来说只有两条线来控制数据的传输,SDA和SCL。对于IIC协议的学习,要掌握四种模式,主发送,主接收,从发送和从接收。在对设备的读写操作信号是在发送从地址时将其一起发送出去,比如主发送模式,它要从从设备中读取数据,那么在主设 ...…

查看全部问答>

接插件选型?

        1、每一块电路板上,都会用到接插件,请教下接插件都是怎么选型?谁能上传点接插件的资料。         2、满足以下要求的接插件,有用过得给推荐下:    ...…

查看全部问答>