OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2600|回复: 5

两个串口通信,出现问题,请求您的帮忙

[复制链接]

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
149
金钱
149
注册时间
2021-12-27
在线时间
17 小时
发表于 2023-7-3 23:26:26 | 显示全部楼层 |阅读模式
5金钱
您好,我在尝试用F407的串口1(115200)和串口2(57600)通信,当串口1通过上位机接收到数据时,可以由串口2发送出去串口2的上位机,但是反过来的时候,由串口2通过上位机发送数据时,就会卡死,这是什么原因呢?

最佳答案

查看完整内容[请看2#楼]

我找到原因了,因为我直接用的现成的串口2的输出print函数,它在里面调用了 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); //等待上次传输完成 USART_SendData(USART1,(uint8_t)USART2_TX_BUF[j]); //发送数据到串口2 然后现在我想看看,怎么把就是正点例程里这个#if 1 #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
149
金钱
149
注册时间
2021-12-27
在线时间
17 小时
 楼主| 发表于 2023-7-3 23:26:27 | 显示全部楼层
35号技师 发表于 2023-7-4 10:07
原因可能有很多,主要看你程序怎么写

我找到原因了,因为我直接用的现成的串口2的输出print函数,它在里面调用了
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);  //等待上次传输完成
USART_SendData(USART1,(uint8_t)USART2_TX_BUF[j]);          //发送数据到串口2

然后现在我想看看,怎么把就是正点例程里这个#if 1
#pragma import(__use_no_semihosting)            
//标准库需要的支持函数                 
struct __FILE
{
        int handle;
};

FILE __stdout;      
//定义_sys_exit()以避免使用半主机模式   
void _sys_exit(int x)
{
        x = x;
}
//重定义fputc函数
int fputc(int ch, FILE *f)
{        
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
        USART1->DR = (u8) ch;      
        return ch;
}
#endif

改成一个使用usart2的print函数
回复

使用道具 举报

2

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
499
金钱
499
注册时间
2019-8-20
在线时间
154 小时
发表于 2023-7-4 10:07:51 | 显示全部楼层
原因可能有很多,主要看你程序怎么写
回复

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
149
金钱
149
注册时间
2021-12-27
在线时间
17 小时
 楼主| 发表于 2023-7-4 11:54:16 | 显示全部楼层
liushuchao 发表于 2023-7-4 11:52
我找到原因了,因为我直接用的现成的串口2的输出print函数,它在里面调用了
while(USART_GetFlagStatus( ...

我想试试预编译能不能行,(不知道自己描述的对不对。)
回复

使用道具 举报

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
149
金钱
149
注册时间
2021-12-27
在线时间
17 小时
 楼主| 发表于 2023-7-4 17:02:18 | 显示全部楼层
liushuchao 发表于 2023-7-4 11:54
我想试试预编译能不能行,(不知道自己描述的对不对。)

直接用的if语句就成了,我是弱智。。
回复

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2022-6-29
在线时间
8 小时
发表于 2023-9-21 09:45:32 | 显示全部楼层
想请教一下你是怎么实现的。我是F429板子,也是想2个串口通信,但是就是实现不了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 06:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表