justsoso110110 发表于 2016-6-7 22:30:13

Nucleo F303k8串口调试能发送,但是不能接收

之前发了一个帖子,没有上传工程。发现还能加附加的,就上传下整个工程。
新买了一块Nucleo F303k8,调试串口:
MDK 5.18 使用HAL库开发。下载了STM32CubeF3,里面有F303K8的串口例程。
根据串口的例程,自己写了一个,使用中断方式处理串口。
问题描述:
(1)字符串发送正常,用串口助手都能收到,会进入中断函数USARTx_IRQHandler;
(2)通过串口助手发送的字符没有任何反应,程序不进入中断函数USARTx_IRQHandler,也不会进入回调函数HAL_UART_RxCpltCallback
(3)怀疑过串口芯片的问题,但是用我自己焊的线路板和买的串口线路板都是一样的情况。
搞了两天了,求高手指点!
谢谢!

kernaly 发表于 2016-6-8 15:47:34

中断处理函数 USARTx_IRQHandler()都被注释了,即使产生中断,如何进入处理呢?

Dylan疾风闪电 发表于 2016-6-8 14:19:23

本帖最后由 Dylan疾风闪电 于 2016-6-8 14:50 编辑

先下载代码,帮你排查下,一会回复你:)
大致看了下,有2个问题:
1、中断处理函数 USARTx_IRQHandler()被注释了,即使产生中断,也无法跳转到处理函数中
2、中断优先级未配置HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); 中断未开,MCU不会进入中断


(对HAL库了解的不多,只能回答这些)--------------------------标准库使用者一枚:)

wenyangzeng 发表于 2016-6-8 10:47:55

楼主你的串口中断USARTx_IRQHandler()都注释掉了,如何进入串口接收中断?

power568 发表于 2016-6-8 10:18:13

1. 首先确认工具是否正常,数据是否发送的芯片的接收引脚;
2. 确认串口配置时正确的,特别是接收引脚和接收中断;
3. 使用Cube的话,确认相关的接口都初始化或使用正确,之前有人由于回调到原因就出现收发异常...

衔胆栖冰 发表于 2016-6-8 09:24:22

沙发!我没有看代码哈,看了问题就没必要看代码了。首先你得确定你的硬件上没有错误。可以用示波器测你MCU的RX引脚上有没有波形,用或者用轮询的方法看能不能收到。我就试过拿别人的开发板调串口,能发不能收,最后发现开发板有问题,不要太相信别人的东西。实际测试才是王道。

justsoso110110 发表于 2016-6-8 20:21:15

衔胆栖冰 发表于 2016-6-8 09:24
沙发!我没有看代码哈,看了问题就没必要看代码了。首先你得确定你的硬件上没有错误。可以用示波器测你MCU ...

昨天忙了一晚上,终于找到原因了。是新买的一根USB转串口的线坏的。本来以为新买的,应该没问题,试着换了一下USB转串口线,一切都正常了。坑爹。
谢谢!

justsoso110110 发表于 2016-6-8 20:22:13

power568 发表于 2016-6-8 10:18
1. 首先确认工具是否正常,数据是否发送的芯片的接收引脚;
2. 确认串口配置时正确的,特别是接收引脚和接 ...

嗯,已经解决了,是我的USB转串口的线有问题

justsoso110110 发表于 2016-6-8 20:23:03

wenyangzeng 发表于 2016-6-8 10:47
楼主你的串口中断USARTx_IRQHandler()都注释掉了,如何进入串口接收中断?

我把中断函数直接放在main里面了。
不过问题已经解决,谢谢!

justsoso110110 发表于 2016-6-8 20:23:42

Dylan疾风闪电 发表于 2016-6-8 14:19
先下载代码,帮你排查下,一会回复你
大致看了下,有2个问题:
1、中断处理函数 USARTx_IRQHandler()被注 ...

中断优先级不是0级最高吗?0是关闭的意思?
页: [1] 2
查看完整版本: Nucleo F303k8串口调试能发送,但是不能接收