STM32F0系列芯片SPI发送一字节数据却输出16个CLK时钟的解决办法
问题
上一个项目在用寄存器操作STM32F0芯片的SPI_DR寄存器的时候,发现一个问题:
我给DR寄存器赋值一个uint8_t一字节大小的数据,SPI引脚能正确输出数据和时钟,但前面八位正确的数据输出完成后,时钟CLK没有停下来,又紧接着输出了八个时钟脉冲
也就是原数据0xfe 变成了十六位的 0xfe00 , 导致时序错误,使用逻辑分析才得以检查出来
为什么
去国外的st论坛转了一圈,发现有几个老外也是遇到了相同的问题,但他们是使用正确的固件库函数解决的,这并不是我想要找到的寄存器解决方法
后来又认真阅读了一次F030的数据手册,又仔细看了很久的HAL库底层代码,终于找到了问题所在:
如果你要spi输出一个字节八个时钟的数据,应该只操作SPI_DR寄存器的低八位,什么意思呢?
DR寄存器是16位的,如果你直接SPI1->DR = 0x85 ; 这样的操作是不正确的,你的数据会变成0x0085之后赋值给DR寄存器,也就是操作了16位,所以STM32会输出16个时钟脉冲
怎么办
那么看看我是怎么改的:
1 void SPI_WriteByte(uint8_t BYTE) 2 { 3 //
STM32F0系列芯片SPI发送一字节数据却输出16个CLK时钟的解决办法相关推荐
- 网络收发数据中涉及的黏包问题及解决办法
一.什么是黏包: 粘包指的是数据和数据之间没有明确的分界线,导致不能正确读取数据 应用程序无法直接操作硬件,应用程序想要发送数据则必须将数据交给操作系统,而操作系统需要同时为所有应用程序提供数据传输服 ...
- 三菱FX系列PLC电池电压低导致程序参数丢失,PROG.E报警灯闪烁的解决办法
三菱FX系列PLC电池电压低导致程序参数丢失,PROG.E报警灯闪烁的解决办法 由于长时间断电,重新开机后,操作人员反映设备无法启动,查看PLC面板报警如下图所示: 此时电源灯POWER正常: 运行灯 ...
- 雷塞SMC304系列控制器VC6.0例程在VS2015下编译遇到的若干问题及解决办法
雷塞SMC304系列控制器VC6.0例程在VS2015下编译遇到的若干问题及解决办法 标签(空格分隔): 雷塞 SM304 WIN10 VS2015 最近由于导师要求,负责喷涂机器人的控制部分,接触到 ...
- 部分ABAQUS版本数据无法正常输出到Excel的一种解决办法
ABAQUS学习笔记-部分ABAQUS版本数据无法正常输出到Excel的一种解决办法 ABAQUS输出的数据主要分为场输出与历史输出两种方式(根据空间与时间域区分),用户可以根据需要在Step中设置不 ...
- vue+cesium cesium数据量太大导致浏览器卡顿解决办法
vue+cesium cesium数据量太大 导致浏览器卡顿 解决办法 解决方案 : 不要把任何的cesium对象 放在data中监听,因为在data中的变量 , vue会劫持数据 , 导致迟缓. 解 ...
- spi通信c语言发送32字节数据,AVR单片机SPI通讯实例程序 (C - ARM - 电子发烧友网
AVR单片机SPI通讯实例程序 (C语言源代码) 一个SPI的实例,通过SPI实现两机通讯, 采用中断方式实现双全工通讯. 本例用两MEGA8515实现,连接为: MISO----MISO MOSI- ...
- c语言spi发送12位数据,【51单片机】普通I/O口模拟SPI口C语言程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...
- 海思3516系列芯片SPI速率慢问题深入分析与优化(基于PL022 SPI 控制器)
目录 前言: 第一部分: 第二部分: 第三部分: 第四部分: 前言: 我在某个海思主控的项目中需要使用SPI接口来驱动一块液晶屏,液晶屏主控为 st7789,分辨率 240x240,图像格式 RGB5 ...
- oracle 关联出现重复数据,ORACLE 分页查询出现重复记录的解决办法
今天在用Oracle分页查询数据的时候出现了重复数据,有的数据无法查出,很郁闷,想了想,找了资料,发现问题 分页语句: select * from ( select row_.*, rownum ro ...
最新文章
- 服务器响应的生成:HTTP响应报头——HttpServletResponse接口的应用
- 2012 iis php mysql_Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建wordpress博客教程
- 用x64汇编优化8位S盒置换(三)
- hive 提交不到yarn_在Linux将MapReduce程序提交给YARN执行
- Android中的ImageView的getDrawableCache获取背景图片的时候注意的问题
- LeetCode-73. Set Matrix Zeroes
- 创建bootstrap项目_使用Bootstrap创建第一个网页
- NIHCC发布迄今世界最大的CT医学影像数据集(附下载)
- Xshell和Xftp5配置连接阿里云服务器
- MySQL聚集索引详解_MySQL innodb 聚集索引的概念与使用教程
- 建造者模式Builder
- scala Option类入门解析
- AutoJs 4.1.1 实战教程
- JSON Editor Online
- 学习Java必看的Java书籍(本本经典实用)
- 浅谈俄式硬核游戏《逃离塔科夫》:却让人沉浸其中
- javaweb超市商品库存信息管理系统报告
- html制作简历供人填写,求职简历制作个人定制代写
- 累计亏31亿的尚德机构:研发费用递减,多次被罚,市值缩水近九成
- vbnet 直线 弧形在autoCad中的画法