打印
[技术问答]

华大串口调试问题

[复制链接]
2812|21
手机看帖
扫描二维码
随时随地手机跟帖
楼主
martinhu| | 2020-7-23 20:01 | 显示全部楼层 回帖奖励 |倒序浏览
void USART1_Sendchar(u8 Data)
{   
    while(Uart_GetStatus(UARTCH1,UartTC)==RESET);//等待字符发送完成
    Uart_SendData(UARTCH1,Data);   
}
这个函数好像有问题,TC应该是发完之后置1,所以这个while应该是一直卡住了。
我记得查询发送有例子的,发送前查询TXE,发送后查询TC是否置起,然后,再清除TC

另外中断里面TC清除的语句要删掉。

使用特权

评论回复
沙发
martinhu| | 2020-7-27 09:00 | 显示全部楼层
Tobbie 发表于 2020-7-25 16:39
根据手册上的配置,也参考了网上例子,调试助手那里就是没有任何接收数据 ...

问题是你的自己写的函数里面,发送之前就要去TC置1,不然就一直卡死在while等待里面了吧?
void USART1_Sendchar(u8 Data)
{   
    while(Uart_GetStatus(UARTCH1,UartTC)==RESET);//等待字符发送完成
    Uart_SendData(UARTCH1,Data);   
}
你看你的函数,发送之前就等着TC置1??

使用特权

评论回复
板凳
martinhu| | 2020-7-28 11:04 | 显示全部楼层
Tobbie 发表于 2020-7-27 23:13
这个函数我试过,ST上面是没问题的,另外你说的方法我也试过了,串口助手没有反应


库函数里面本身就有查询发送的例子,不明白你为什么非要按照自己的理解写一个

使用特权

评论回复
地板
martinhu| | 2020-7-31 14:37 | 显示全部楼层
本帖最后由 martinhu 于 2020-7-31 23:17 编辑
Tobbie 发表于 2020-7-31 13:43
附件是论坛下载的例程,以下是更改地方,昨天拿另外一块板子测试,也出现同样现象第一次用华大,问题比较多 ...

这个代码有问啊,你又是使能了发送中断,又是在主循环里面查询发送?
楼主是不是很少调试串口啊?两个混起来用?

看看这个例程,中断接收,用宏定义选择中断发送和查询发送两种方式。

上位机发送6个字节,MCU回复6个相同字节给上位机。

hc32l13x_ddl_Rev1.9.1_uart_RxInt_TxPoll&TxInt.zip (663.86 KB)




使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则