引用: 骑猪去天山 发表于 2018-12-10 19:49
改为中断发送,首先你开启串口的中断没有?
引用: deco_89 发表于 2018-12-10 20:04
可以把代码传上来或者截图大家好看下,另外你板子用的是哪个?
引用: 深海零下一度1 发表于 2018-12-10 20:24
板子是某stm32的开发板,因为是别人给我的,恕我直言,真不知道是什么型号,只知道是F407
代码如下,自写xprintf:
引用: naiztycheng 发表于 2018-12-10 20:10
当然不行,应该在IT里面写中断处理程序
引用: 深海零下一度1 发表于 2018-12-10 20:47
中断模式发送,只是在IT Handler里面设置成可以再次调用吧?
而且就算我没有在HAL_UART_TxCpltCallback里面处理后续,第一次也肯定应该发送得出去才对。。
但是第一次也必然发不出
引用: 深海零下一度1 发表于 2018-12-10 20:47
中断模式发送,只是在IT Handler里面设置成可以再次调用吧?
而且就算我没有在HAL_UART_TxCpltCallback里面处理后续,第一次也肯定应该发送得出去才对。。
但是第一次也必然发不出
引用: deco_89 发表于 2018-12-10 20:34
你只有这段代码没用啊,UartSetTxAvailable(); 是要干嘛?初始化怎么处理的?配置怎么处理的,建议还是从基础多练习几个例程吧,使用HAL库的话不管你用什么板子只要配置好了,应该都没问题的
引用: huazhe 发表于 2018-12-10 20:54
楼主 其实那两个函数并不一样。
上面各位的建议都非常 好,看看注释,借助例程自己捣鼓几下就知道差别了。
引用: TOPCB 发表于 2018-12-10 21:11
仿真一下,进入串口发送以后,周到哪一步出的错。
引用: naiztycheng 发表于 2018-12-10 21:40
我之前做过一个虚拟串口的,觉得程序写得也对,就是调不通,每次接受到的数也都正常但是发送出去被电脑串口终端接收就不成。后来发觉是串口终端的问题。但是推测你这个不是这个原因。你在调试的时候时钟卡在while那个地方吗?还是while那个地方已经过去了,但是收不到数据? ...
引用: 深海零下一度1 发表于 2018-12-10 22:26
中断就是CubeMX直接配置的。。都是默认设定,你要说配错了吧。。RX又是中断方式正常使用。
调试没发现卡在什么地方。。
更多回帖