STM32单片机如何处理QT上位机串口中发过来的数据?

QT发送数据和普通的串口读取一样吗?在单片机里重新scanf();函数能读取吗?单片机接收处理串口的数据是什么样子呢?... QT发送数据和普通的串口读取一样吗?在单片机里重新scanf();函数能读取吗?
单片机接收处理串口的数据是什么样子呢?
展开
 我来答
11kxmx
2019-02-20 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2506万
展开全部
单片机接收处理串口的数据的过程就是配置好波特率、位宽、校验位等,收到数据 后可以引起中断,也可以查询标志位,然后进行相应的处理。
1) 串口时钟使能,GPIO 时钟使能。
2) 设置引脚复用器映射:调用 GPIO_PinAFConfig 函数。
3) GPIO 初始化设置:要设置模式为复用功能。
4) 串口参数初始化:设置波特率,字长,奇偶校验等参数。
5) 开启中断并且初始化 NVIC,使能中断(如果需要开启中断才需要这个步骤)。
6) 使能串口。
7) 编写中断处理函数:函数名格式为 USARTxIRQHandler(x 对应串口号)
追问
那么如果我和串口助手调试,需要串口助手发送数据,单片机接收。那么使用的哪个函数呢?
冯小气气
2019-02-21 · 知道合伙人IT服务行家
冯小气气
知道合伙人IT服务行家
采纳数:98 获赞数:239
八年编程经验,公司核心技术人员。

向TA提问 私信TA
展开全部

单片机有串口中断。串口每收到1byte数据就会触发1次接收中断。中断一般像下面这面,你可以根据自己的需求改。我的做法是中段里只管接收数据,然后定时器中监测一定时间内没有收到数据,认为数据接收完毕,然后置位接受完成标志。在主函数中查询这个标志,进行数据处理。

void USART1_IRQHandler (void)//串口中断
{
u8 dat,flag = 0;
if(USART_GetFlagStatus(USART1, USART_FLAG_ORE) != RESET)
{
USART_ClearITPendingBit(USART1,USART_IT_ORE); 
dat = USART_ReceiveData(USART1);
flag = 1;
}
if(USART_GetITStatus(USART1,USART_IT_RXNE)!= RESET)   //Receive Data register not empty interrupt.
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
dat = USART_ReceiveData(USART1);
flag = 1;
}
if(flag == 1)
{
Uart1RecvOver.recvOver = 0;
if(PushInQueue_Q(&uart1RecvQueue, dat))
Uart1RecvOver.recvTimeCnt = 0;
else
Uart1RecvOver.recvTimeCnt = USART_RECV_END_TIME;
}
}
更多追问追答
追问
我在usart.c里面写了这个函数
uint8_t USART1_Getchar(void)
{
while(!(USART1->SR & (1DR; //直接返回DR的数据
}
主函数里
whlie(1)里调用此函数
文件是从cubemx导出的,可以接收数据。但是我在另一个项目里用这样的方法,程序就死在那了,我不太明白哪里出了问题。
追答
cubemx会自动帮你做串口的初始化。你的另一个项目对这个串口有做初始化吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-02-20
展开全部
串口通信是有协议的,所有操作都得按照协议来,和你用什么编译器/编辑器或者框架无关,如何读取数据要看你的单片机硬件了:
有串口->直接读取寄存器的数据就行了,每次一个BYTE,一般该寄存器都命名为SBUF
无串口->需使用软件模拟串口通信。
追问
串口通讯是没有问题的,现在是单片机给QT编写的上位机发送数据,按约定格式,发送的数据使用的是重写的printf();现在我需要从QT编写的上位机里发送一组数据,单片机需要读取解析这条数据的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式