F4最小系统板串口通信问题求解(Linux下无法接受串口数据)

moumde 2021-03-26 01:22:19
RT,之前有在F7的板子上面实现过串口通信,当时在Windows下的串口助手以及Ubuntu下的cutecom还有自己写的程序都能够正常接收数据包。

但是现在因为项目需求,把F7上面的程序移植到了F4上面,出现的问题在于,目前F4能够与Win下面的串口助手正常通信,然而到了Linux下面就不行了,具体表现为在USB口刚接上,cutecom一开始打开后会接收到一段数据,但后面就没有数据被接收到了。

Linux下的ttyUSB0的权限也全部打开了,也还是不行,请问有人遇到过这种问题可以解答一下吗?

我现在怀疑是不是底层程序的原因,因为在F7中,我是根据原子的开发手册内部写的,利用寄存器发送数据。
...
for(i=0; i<len+4; i++) // 发送数据
usart1_send_char(send_buff);
}

//串口1发送1个字符
//ch:要发送的字符
void usart1_send_char(u8 ch)
{
while((USART1->ISR&0X40)==0);
USART1->TDR=ch;
}


但是在F4中貌似没有这个ISR寄存器,因此我就直接使用了
HAL_UART_Transmit(&UART1_Handler, send_buff, sizeof(send_buff), 0xffff);
进行数据的发送。

会不会是这方面的原因,有了解的大佬可以指点一下吗
...全文
236 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
IamReason 2021-04-01
  • 打赏
  • 举报
回复
如果排除软件的问题,,,有一个我遇到过的可能对你有帮助,,晶振不准,,,电脑的大部分设备的晶振是准的,但你STM32的晶振不准,对有的电脑可以正常通讯,有的却不行
xws245925587 2021-03-26
  • 打赏
  • 举报
回复
如果windows可以通信,代表你的程序没问题
moumde 2021-03-26
  • 打赏
  • 举报
回复
引用 1 楼 worldy 的回复:
如果你确认你能跟win的串口助手通信,那么也肯定能和Ubuntu下的串口组手通信,如果不能,那么就是Ubuntu的驱动有问题

我在Linux下重新装了CH340的驱动,但还是不行,以前在F7的板子上是可以的,但是把程序移植到F 4上面就不行了,不知道为什么
worldy 2021-03-26
  • 打赏
  • 举报
回复
如果你确认你能跟win的串口助手通信,那么也肯定能和Ubuntu下的串口组手通信,如果不能,那么就是Ubuntu的驱动有问题

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧