stm32开机时,在eeprom读取存储的内容,发送给DGUS屏进行显示数据,但是第一个数据显示是0
来源:互联网 发布:mac系统语言改成英文 编辑:程序博客网 时间:2024/06/03 20:41
stm32开机时,在eeprom读取存储的内容,然后用串口发送给DGUS屏的变量地址进行显示数据,但是第一个数据显示是0,而且之前发送接收数据时串口通信都不存在问题。通过测试eeprom读数据是成功的,但是为什么DGUS屏显示的第一个数据会失败呢?
第一点,有可能是变量地址写错了,
第二点,有可能是串口传输的问题,
第三点,有可能是dgus屏接收显示数据太慢。
经过咨询DGUS屏的客服,客服的回答是:“会有延时,等完全启动后再发”。
但是在客服回复我之前,我已经找到的我的问题所在,并且已经解决了我的问题。
其实问题就是串口的发送问题,虽然在此之前串口通信并没有问题,最终还是不太严谨的问题。
//串口发送函数
void Txd_Byte(u8 data)
{
USART1->DR=data;
while((USART1->SR&0X40)==0);
}
这里判断的是TC位,要等到数据到移位寄存器中完成后,再发送第二帧数据,但是,由于SR寄存器的复位值是0x00c0,即一开始TC位就是置1的,所以当第一次数据写入DR寄存器中的时候头一个while没有起作用,当第二个数据来了就把第一个数据覆盖了,这就是串口的第一个数据丢失了的原因!解决的办法就是直接判断TXE位,把0X40改为0X80即可。
当数据从发送缓冲器传送到移位寄存器时,设置TXE标志(发送缓冲器空),它表示内部的数据缓冲器可以接收下一个数据了。详情请查阅stm32参考手册。
第一点,有可能是变量地址写错了,
第二点,有可能是串口传输的问题,
第三点,有可能是dgus屏接收显示数据太慢。
经过咨询DGUS屏的客服,客服的回答是:“会有延时,等完全启动后再发”。
但是在客服回复我之前,我已经找到的我的问题所在,并且已经解决了我的问题。
其实问题就是串口的发送问题,虽然在此之前串口通信并没有问题,最终还是不太严谨的问题。
//串口发送函数
void Txd_Byte(u8 data)
{
USART1->DR=data;
while((USART1->SR&0X40)==0);
}
这里判断的是TC位,要等到数据到移位寄存器中完成后,再发送第二帧数据,但是,由于SR寄存器的复位值是0x00c0,即一开始TC位就是置1的,所以当第一次数据写入DR寄存器中的时候头一个while没有起作用,当第二个数据来了就把第一个数据覆盖了,这就是串口的第一个数据丢失了的原因!解决的办法就是直接判断TXE位,把0X40改为0X80即可。
当数据从发送缓冲器传送到移位寄存器时,设置TXE标志(发送缓冲器空),它表示内部的数据缓冲器可以接收下一个数据了。详情请查阅stm32参考手册。
阅读全文
0 0
- stm32开机时,在eeprom读取存储的内容,发送给DGUS屏进行显示数据,但是第一个数据显示是0
- thinkphp 在数据分类的时候, 默认数据分类的第一个显示内容
- 迪文的DGUS屏-如何在屏幕上显示时间
- EEPROM存储复杂的数据
- STM32串口发送数据第一个字节丢失问题
- 在Windows下进行底层IO操作之CMOS数据的读取和显示
- dgus屏串口通信时,发现数据有时候stm32能接收到,有时候接收不到,一直想不到是什么原因
- stm32的串口发送16进制数据,上位机16进制显示
- 从数据库中读取出的数据如何在GridView显示成我们所需要的内容?
- ECG数据在Matlab下的读取/显示方法
- 修改数据显示内容
- 使用文件进行数据存储及读取文件内容
- 如何在iPhone程序读取数据时显示进度窗
- ajax异步调用,当鼠标点在图片上时,显示一个新层读取数据内容
- 直接给显存发送数据,显示字符串(…
- stm32 串口发送数据第一字节丢失
- stm32 串口发送数据第一字节丢失
- Spring-JDBC:在使用JdbcTemplate进行条件查询时没有返回数据,但是sql直接在数据库中执行是有数据返回的。
- Java IO包
- BZOJ 2064: 分裂 状压dp
- 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)
- Java基础3--条件选择结构
- fis3 一些特殊方法
- stm32开机时,在eeprom读取存储的内容,发送给DGUS屏进行显示数据,但是第一个数据显示是0
- Androd 多语言国际化设置
- 求二叉树的先序遍历
- 2017.8.16 总结
- HDU 6086 Rikka with String(2017 Multi-University Training Contest 3)
- 带权二分匹配——KM算法
- menu
- OpenCV之bitwise_and、bitwise_not等图像基本运算及掩膜
- SpringBoot和Hibernate整合