野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9119|回复: 9

谁写过串口接收任意字长的字符串,求分享,谢谢!

[复制链接]
发表于 2019-7-1 17:17:25 | 显示全部楼层 |阅读模式
Q:1366016055
回复

使用道具 举报

发表于 2019-7-1 22:03:14 | 显示全部楼层
例程里面那个环形队列
回复 支持 反对

使用道具 举报

发表于 2019-7-2 09:56:26 | 显示全部楼层
结束条件改为:最大的字符串长度+通讯超时即可
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-2 13:35:20 | 显示全部楼层
雨中的漫步 发表于 2019-7-2 09:56
结束条件改为:最大的字符串长度+通讯超时即可

比如STM32串口接收的字符串为 “abcd”  ,接收后存入数组char mychar[k++], 是不是mychar[0]='a';
mychar[1]='b';  mychar[2]='c';mychar[3]='d';  ???? 初始化 k=0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-2 16:14:43 | 显示全部楼层
WishWish 发表于 2019-7-1 22:03
例程里面那个环形队列

比如STM32串口接收的字符串为 “abcd”  ,接收后存入数组char mychar[k++], 是不是mychar[0]='a';
mychar[1]='b';  mychar[2]='c';mychar[3]='d';  ???? (初始化 k=0 )
回复 支持 反对

使用道具 举报

发表于 2019-7-2 17:28:39 | 显示全部楼层
往事随风就好 发表于 2019-7-2 16:14
比如STM32串口接收的字符串为 “abcd”  ,接收后存入数组char mychar[k++], 是不是mychar[0]='a';
mych ...

是的,你可以收到后自己处理添加个mychar[4]=' \0 ';
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-2 17:57:32 | 显示全部楼层
WishWish 发表于 2019-7-2 17:28
是的,你可以收到后自己处理添加个mychar[4]=' \0 ';

串口为何不能一下子接收“abcd”     然后直接存在数组里面 mychar[] =“abcd”   
????
回复 支持 反对

使用道具 举报

发表于 2019-7-2 18:05:39 | 显示全部楼层
往事随风就好 发表于 2019-7-2 17:57
串口为何不能一下子接收“abcd”     然后直接存在数组里面 mychar[] =“abcd”   
????

从串口外设的驱动上来说,发和收都要一字节一字节弄,一个函数搞的只不过是再写个封装的函数,或者你参考 DMA那章节和例程,串口接收用上DMA可以想象成你说的直接放在数组里了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-5 14:03:38 | 显示全部楼层
WishWish 发表于 2019-7-2 18:05
从串口外设的驱动上来说,发和收都要一字节一字节弄,一个函数搞的只不过是再写个封装的函数,或者你参考 ...

void USART3_IRQHandler(void)
{
        u8 mychar;
        
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
        {
                USART_ClearITPendingBit(USART3,USART_IT_RXNE);
                mychar = USART_ReceiveData(USART3);
                 if(mychar=='\n')
                 flag=1;
            }
}


判断串口是否收到换行符,可以这样子写吗?
if(mychar=='\n')





回复 支持 反对

使用道具 举报

发表于 2019-7-5 16:45:15 | 显示全部楼层
往事随风就好 发表于 2019-7-5 14:03
void USART3_IRQHandler(void)
{
        u8 mychar;

看起来没问题
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 11:06 , Processed in 0.028236 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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