cubemx配置的串口中断发送HAL_UART_Transmit_IT不行

2019-07-14 15:22发布



为何HAL_UART_Transmit可发送,改成HAL_UART_Transmit_IT就不行了
cube配置的STM32f407系统
其他代码均一样

        while(HAL_OK != HAL_UART_Transmit_IT(DEFAULT_UART, (uint8_t*)UartTxBuffer, index));    //不行
        while(HAL_OK != HAL_UART_Transmit(DEFAULT_UART, (uint8_t*)UartTxBuffer, index, 0xFFFF));  //可以




----
搞定,见21楼
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
深海零下一度1
1楼-- · 2019-07-16 05:44
TOPCB 发表于 2018-12-10 21:11
仿真一下,进入串口发送以后,周到哪一步出的错。

手里只有stlink可以仿真吗?

顺便请教这个函数是否是 先填好内容,最后到
    /* Enable the UART Transmit data register empty Interrupt */
    __HAL_UART_ENABLE_IT(huart, UART_IT_TXE);

这里启动发送过程?
深海零下一度1
2楼-- · 2019-07-16 11:31
naiztycheng 发表于 2018-12-10 21:40
我之前做过一个虚拟串口的,觉得程序写得也对,就是调不通,每次接受到的数也都正常但是发送出去被电脑串口终端接收就不成。后来发觉是串口终端的问题。但是推测你这个不是这个原因。你在调试的时候时钟卡在while那个地方吗?还是while那个地方已经过去了,但是收不到数据? ...

中断就是CubeMX直接配置的。。都是默认设定,你要说配错了吧。。RX又是中断方式正常使用。
调试没发现卡在什么地方。。

不过CubeMX 最新版问题是不少,4.12发现eth部分PHY_MICR_INT_OE这个值会生成错误,本来是1写成了2
TOPCB
3楼-- · 2019-07-16 16:02
直接调用HAL_UART_Transmit_IT进入发送中断
naiztycheng
4楼-- · 2019-07-16 17:21
深海零下一度1 发表于 2018-12-10 22:26
中断就是CubeMX直接配置的。。都是默认设定,你要说配错了吧。。RX又是中断方式正常使用。
调试没发现卡在什么地方。。

我用401做一个实验一下
lifei639156
5楼-- · 2019-07-16 20:01
 精彩回答 2  元偷偷看……
lifei639156
6楼-- · 2019-07-16 21:10
还有其实重定向比这个好用

一周热门 更多>