stm32 uart4 uart5 只能发送,不能接收中断?请问你这个问题是怎么解决的?谢谢!

 我来答
迪凯特科技(北京)有限公司 2023-07-28
展开全部
串口对通信速率没有明确的限制,但由于是异步通信,需要通信的双方约定使用同样的速率,实际具体使用时以保证通信双方可以接受为准。 比如,单片机与PC进行通信,PC端可以允许的波特率是一些特定的数字,比如300,600,1200,9600,115200,那么单片机也必须在这些数字中选择.
百度网友9c46568
2012-10-22
知道答主
回答量:17
采纳率:0%
帮助的人:6.1万
展开全部
你用的是485没错吧!485收发是要通过485芯片上RESET引脚的拉高拉低切换的。
追问
我已经控制了485的那个引脚,但是还是不行,STM32发送的时候可以中断,但是用电脑通过串口给它发数据,好像没有反应,不能中断。我已经开了接收中断。
追答
控制引脚时 延时了没?

#define TX4_485 GPIO_SetBits(GPIOB,GPIO_Pin_4);
#define RX4_485 GPIO_ResetBits(GPIOB,GPIO_Pin_4);
uint32_t tim2=0x3fff;

TX4_485; //发送

Delay(tim2);

for(j=0;j<5;j++)
{
USART_SendData(UART4, RX[j]); //4号串口发送
while(USART_GetFlagStatus(UART4, USART_FLAG_TXE) == RESET){} //等待发送完毕
}
Delay(tim2); //如果这里的延时不够,发出去的最后以为数据会出错

RX4_485; // 接收
来自:求助得到的回答
迪凯特科技(北京)有限公司
2023-07-28 广告
要从电脑的一个串行口接收数据并将其从另一个串行口发送出去,你可以使用以下步骤:1. 确定你要使用的两个串行口。在大多数计算机上,串行口通常被称为COM1、COM2等。确保你了解每个串行口的名称或编号。2. 编写一个程序来读取来自一个串行口的... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
崔寄风FE
2012-10-19 · TA获得超过663个赞
知道小有建树答主
回答量:1344
采纳率:0%
帮助的人:570万
展开全部
怎回事,中断没处理好
追问
发送中断可进,接收中断进不了,查询都可以,就是不能接收中断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式