68336016 发表于 2024-4-16 21:24:09

STM32F4XX的USART6有什么不同地方?接收到数据都是0

本帖最后由 68336016 于 2024-4-16 22:01 编辑

STM32F401RCT6
这个USART6我一直是当作调试串口(异步),只往电脑发送调试信息,还没接收过电脑串口发来的数据。
今天从电脑往STM32F4的USART6发送数据,回调函数里面的闪灯是正常运行的,那说明串口线也是好的,接收中断也是正常的。
STM32也可以正常发送字符串到电脑,说明波特率也没什么问题。

可是在回调函数里将接收到的字符立刻回传给电脑,却显示为0x00。
RxChar是全局的uint8_t变量。

试了几个板都这样,在这个回调函数里面操作连接USART1的串口屏,数据收发都是正常的,就是这个USART6没搞顺,设置都几乎一样的。

-------------------------------------------------------
是自己低级错误的导致的问题,后面有跟帖说明了



lb0857 发表于 2024-4-16 21:34:10

使用hal库,有故障就是难查一些。
缓冲器大小设置对吗?
溢出了?

yuyu87 发表于 2024-4-16 21:56:44

有问题就对着手册看,不要过分依赖库

68336016 发表于 2024-4-16 22:00:37

lb0857 发表于 2024-4-16 21:34
使用hal库,有故障就是难查一些。
缓冲器大小设置对吗?
溢出了?
(引用自2楼)

自己的低级问题,我的这根USB转串口线,之前可能为了电平转换,TXD上串联了个1N4148二极管,这样输出高电平就靠目标板的IO口自身上拉来实现。

HAL库生成串口代码,默认是不上拉不下拉的,所以这根串口线造成高电平无法识别,将上拉打开也凑合能用了。

串口线比较多,有些线改动了,自己都没留意,随手拿来就用,一直只从单片机接收数据,导致之前没发现这个问题。{:sweat:}

68336016 发表于 2024-4-16 22:02:01

yuyu87 发表于 2024-4-16 21:56
有问题就对着手册看,不要过分依赖库
(引用自3楼)

自己的低级错误,用错串口线,浪费自己一个下午和晚上找原因{:lol:}

lb0857 发表于 2024-4-16 22:08:56

68336016 发表于 2024-4-16 22:02
自己的低级错误,用错串口线,浪费自己一个下午和晚上找原因
(引用自5楼)

这种人为故障,难。
幸亏不是公司上班,项目经理没有发火催着要,火急火燎的估计要一个通宵达旦

1a2b3c 发表于 2024-4-16 23:45:05

要是有个示波器看一眼rx脚波形不是一秒钟的事情吗?
软件工程师和硬件出身的半拉子软件工程师的区别,😏……

1a2b3c 发表于 2024-4-16 23:48:57

这种情况,按照我所谓的经验,我首先看有没有收到数据,收到了,打印出来接收的内容看看是啥,
如果是全零,那么首先想到的是可能rx脚被一直拉低了,或者波特率不对,这时候就会上示波器了,

68336016 发表于 2024-4-16 23:54:04

1a2b3c 发表于 2024-4-16 23:45
要是有个示波器看一眼rx脚波形不是一秒钟的事情吗?
软件工程师和硬件出身的半拉子软件工程师的区别,😏… ...
(引用自7楼)

我什么装备都有,只不过我看板上收到数据,LED会闪烁,理所当然就认为硬件没问题了,自然觉得用逻辑分析仪或者示波器没必要。{:lol:}

kitten 发表于 2024-4-17 00:21:00

lb0857 发表于 2024-4-16 21:34
使用hal库,有故障就是难查一些。
缓冲器大小设置对吗?
溢出了?
(引用自2楼)

HAL库差点蒙冤

lb0857 发表于 2024-4-17 08:14:39

1a2b3c 发表于 2024-4-16 23:45
要是有个示波器看一眼rx脚波形不是一秒钟的事情吗?
软件工程师和硬件出身的半拉子软件工程师的区别,😏… ...
(引用自7楼)

软硬结合不是更有经验

yuyu87 发表于 2024-4-17 08:44:40

我觉得一定要有逻辑分析仪,特别是调I2C,串口,或者QSPI等这些东西,有了这个就太方便了。

68336016 发表于 2024-4-17 09:02:18

yuyu87 发表于 2024-4-17 08:44
我觉得一定要有逻辑分析仪,特别是调I2C,串口,或者QSPI等这些东西,有了这个就太方便了。 ...
(引用自12楼)

工具都有,以前还用。后来就很少用了,经验主义觉得不会有问题,就根本不会想着去测一下。

1a2b3c 发表于 2024-4-17 12:11:10

yuyu87 发表于 2024-4-17 08:44
我觉得一定要有逻辑分析仪,特别是调I2C,串口,或者QSPI等这些东西,有了这个就太方便了。 ...
(引用自12楼)

示波器其实更好,可以看出深层次的问题,比如线上的冲突(两边都是输出模式,打架了等等),逻辑仪看不出来的,示波器我们一眼就看出来是不是打架了😊
还有像你说的iic总线的ack位,实际上示波器来看更方便真实,总线被拉低的情况一目了然,还可以方便的看出上啦电子大了还是小了等等,因为毕竟是模拟信号嘛,

1a2b3c 发表于 2024-4-17 12:12:43

lb0857 发表于 2024-4-17 08:14
软硬结合不是更有经验
(引用自11楼)

我就是那个半拉子啦……
所以经验嘛哈哈

lb0857 发表于 2024-4-17 12:38:12

1a2b3c 发表于 2024-4-17 12:11
示波器其实更好,可以看出深层次的问题,比如线上的冲突(两边都是输出模式,打架了等等),逻辑仪看不出 ...
(引用自14楼)

论有一个配置好的示波器的原因

1a2b3c 发表于 2024-4-17 12:49:53

lb0857 发表于 2024-4-17 12:38
论有一个配置好的示波器的原因
(引用自16楼)

哈哈对的,必须得好,
我手上这个是2010年买的 MSO7104B,4通道模拟+16通道逻辑@1GHz
所以我们平时反而习惯用4个通道的模拟探头来代替逻辑头查看原始信号。。。

yuyu87 发表于 2024-4-17 13:39:49

1a2b3c 发表于 2024-4-17 12:11
示波器其实更好,可以看出深层次的问题,比如线上的冲突(两边都是输出模式,打架了等等),逻辑仪看不出 ...
(引用自14楼)

对的,有条件当然两个都要配,但逻辑分析仪便宜很多,实力不允许的话买这个,1-300元就有。

lb0857 发表于 2024-4-17 16:09:12

1a2b3c 发表于 2024-4-17 12:49
哈哈对的,必须得好,
我手上这个是2010年买的 MSO7104B,4通道模拟+16通道逻辑@1GHz
所以我们平时反而习 ...
(引用自17楼)

海鲜市场上面6-8k
看来当初是70-100k的购买的吧

1a2b3c 发表于 2024-4-17 17:41:13

lb0857 发表于 2024-4-17 16:09
海鲜市场上面6-8k
看来当初是70-100k的购买的吧
(引用自19楼)

6-8k现在?
我马上提一台!
是7104,不是7014 😄

1a2b3c 发表于 2024-4-17 17:45:05

lb0857 发表于 2024-4-17 16:09
海鲜市场上面6-8k
看来当初是70-100k的购买的吧
(引用自19楼)

印象中是 18-20w样子
页: [1]
查看完整版本: STM32F4XX的USART6有什么不同地方?接收到数据都是0