求助:STM32F051 USART1发送没有中断,接收使能中断,发送数据正常,接收数据乱码,确认进入了接收中断,但数据出现乱码,请问有哪些原因 |
串口接收分十六进制格式和ASCII格式,既然发送正常,可以改变一下接收格式看看 |
发送数据正常的话可以查一下编码 |
中断接收加缓冲,或DMA试下 |
会不会是发送端的发送码有问题?用HEX发送,看看接收的数据对不对。或者用示波器在MCU引脚测一下数据,看看线路传输有没有问题。 |
楼主说的不是很明白,发送使用十六进制吗?如果发送是ASCII码,应该不会产生乱码,而十六进制会显示位乱码,但是看实际的内容是不是和他送的一致。 |
也要看看时钟精度是否达到,测量一下位宽是否准确。如果时钟偏差大了,接收数据采样就会出错,收到的数据就不准确 |
好事!说明收到了,细心看看你发的什么格式,接受显示是什么格式 |
另外,速度不对,或外部晶振没起振(默认了内部)会造成通讯速率不对,也可能产生乱码 |
谢谢大家,用示波器测试,接收的波特率是9616,发送的波特率是9588,我分24次发送16进制的1-24,接收的也是16进制,实测下来,刚开始发送的1,2,3接收正常,4开始后接收不正常,还没有找到原因 |
更换更好的晶振! |
用的是内部时钟 |
看一下主频多少 主频太低或者主频不匹配会导致误码率高 |
内部时钟会有一部分偏差。如果对方的偏差向另一边偏,那就会出现误码。所以涉及到串口最好还是用晶振 |
stlink V3mini 调试器不能识别stm32f030F4P6芯片,有解决办法吗?
STM32F0 SMBus 中断怎么开启
STM32F072 无法清除EXTI4_15_IRQn pending标志,导致无法进入stop模式
基于GCC编译器的initcall在STM32如何实现?
想找一款pin to pin的MCU(参考STM32F105RC),支持CAN FD的,64PIN封装,各位小伙伴们有推荐吗
L9663如何使用上行缓冲区发送同步脉冲
如何使用定时器在任意IO输出PWM
下载到flash无法运行,开调试就能成功,是什么问题?
STM32是小端模式,但为什么Keil中memory窗口和反汇编窗口的32位指令不一致?
各位朋友,有没有STM32F0系列教程,最好是汇编语言的。