F4最小系统板串口通信问题求解(Linux下无法接受串口数据)
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);
进行数据的发送。
会不会是这方面的原因,有了解的大佬可以指点一下吗
但是现在因为项目需求,把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);
进行数据的发送。
会不会是这方面的原因,有了解的大佬可以指点一下吗
...全文
相关推荐
linux串口通信
在Linux系统中,串口通信是一种基础且重要的通信方式,常用于设备间的低速数据传输。本文将深入探讨Linux串口通信的相关知识点,包括串口的基本概念、配置、编程接口以及常见应用。**1.
Linux C语言实现串口收发数据
本教程将详细探讨如何在Linux环境下使用C语言实现串口收发数据。首先,我们要了解串口通信的基本概念。串口通信是一种点对点的数据传输方式,通常使用RS-232、RS-485等标准。
Python使用pyserial进行串口通信的实例
4. **超时时间**:设置合理的超时时间可以有效避免程序卡死。通过以上实例和说明,相信您已经掌握了如何使用Python与`pyserial`进行串口通信的基本方法。
Python 串口通信的实现
"本文主要介绍了如何在Python中实现串口通信,使用了pyserial模块,该模块为不同平台提供统一的串口访问接口。通过安装pyserial库,我们可以方便地进行串口通信,例如在Linux系统中使
linux下串口通信设置
DTE则是指数据终端设备,如计算机,负责数据的生成和接收。在连接DCE和DTE时,通常需要考虑信号的匹配问题。#### 三、串口通信接口类型1.


单片机/工控
