你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 HAL库UART 发送信号的波形错误

[复制链接]
triston12138 提问时间:2018-10-24 06:48 /
本帖最后由 triston12138 于 2018-10-25 09:10 编辑

      STM32 新手,目前在使用STM32F769I-DISCO 板子与NUCLEO-F401RE 板子的UART串口通信,使用的是HAL库的指令,测试结果是接收方一直没办法收到正确的数据, 按照其他论坛里的解决办法,多半是Baudrate没设置对,或者配置的GPIO口没有设置AF,但是自己是用CubeMX设置的UART GPIO引脚,而且全部配置了中断,Baudrate两边设置的也是一样,所以猜想应该不会是这些问题。 之后用示波器测试STM32F769I-DISCO板子上的发送端串口,想看下是不是发送的UART信号波形是不是对的,结果发现发送的波形和自己设置要发送的数据和UART信号波形完全不一致。代码如下:
2.JPG


        这里要发送的数据是0xFF,正常示波器上的显示的8个bit应该是11111111,但是却出现了好多的0,而且发送的数据量也不是HAL指令里规定的8个bit。

1.jpg



         这里用的是F7板子上的UART1进行发送,测试了其他串口,例如UART5,UART6,出现的结果也一样,发送的数据量远大于实际设置的Bit数目,而且发送的数据也不对。所以怀疑是不是HAL库出了问题,或者我自己需要在发送前对数据进行处理?有没有懂HAL的朋友看下这里是除了什么问题? 万分感谢!




收藏 评论6 发布时间:2018-10-24 06:48

举报

6个回答
zjczm 回答时间:2018-10-24 09:22:34
什么意思? 看你的问题,还需要付金币? 有点牛的感觉啊
小耳朵1500922649 回答时间:2018-10-24 16:05:41
HAL_UART_Transmit(&huart1, TxByte, 1, 1000); 试着一个byte发送是否有问题。 你的TxByte只是一个byte,而你却要从TxByte地址取8个byte发送???

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

triston12138 回答时间:2018-10-25 09:05:42

嗯,刚试了下,只发送一个byte,输出的波形还是不太对,正常发送0xFF应该是除了起始位,不会出现低电平位的,这个是示波器上的波形和改过后的代码:




IMG_20181024_151830.jpg



Capture.JPG

triston12138 回答时间:2018-10-25 09:09:21
zjczm 发表于 2018-10-24 09:22
什么意思? 看你的问题,还需要付金币? 有点牛的感觉啊

第一次用这个论坛,以为这个金币选项是谁回帖了就会给谁的,不好意思。。。
triston12138 回答时间:2018-10-25 09:13:04
小耳朵1500922649 发表于 2018-10-24 16:05
HAL_UART_Transmit(&huart1, TxByte, 1, 1000); 试着一个byte发送是否有问题。 你的TxByte只是一个byte,而 ...

刚试了下只发送一个byte,输出的波形还是有点乱,正常发送0xFF应该是除了起始位,不会出现低电平,波形图和代码在三楼。。(不知道怎么在回复里加图片。。不好意思)
小耳朵1500922649 回答时间:2018-10-25 10:08:05
triston12138 发表于 2018-10-25 09:13
刚试了下只发送一个byte,输出的波形还是有点乱,正常发送0xFF应该是除了起始位,不会出现低电平,波形图 ...

在线debug看一下串口发送寄存器的发送值是否是0XFF,如果正确,就可能是外部串口电路有问题了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版