[STM8] 同时发多个时

[复制链接]
1365|30
 楼主| zhuww 发表于 2020-5-8 22:30 | 显示全部楼层 |阅读模式
我用串口助手发送字符,然后在有串口一传到pc上,为何一个字符 时可以,同时发多个时就不行了了?
llia 发表于 2020-5-8 22:35 | 显示全部楼层
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| zhuww 发表于 2020-5-8 22:38 | 显示全部楼层
unsigned char buffer[];
void USART1_IRQHandler(void)
{
                int i=0;
            unsigned char temp_trx;
            if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
            {
                    
                        USART_ClearFlag(USART1,USART_IT_RXNE);
                        temp_trx=USART_ReceiveData(USART1);
                        buffer=temp_trx;
                        USART_SendData(USART1,temp_trx);
                        if(i==14)
                        {
                            i=0;
                           
                         }
                        else
                        i++;
                                
            }
        
}比如发送11,返回11,但是发送11 12,返回7F E2 .波特率为115200
langgq 发表于 2020-5-8 22:40 | 显示全部楼层
建议先单独试试发送,然后再单独试试接收,都可靠了在试试收完之后发送
wangzsa 发表于 2020-5-8 22:44 | 显示全部楼层
波特率合适吗
zhenykun 发表于 2020-5-8 22:46 | 显示全部楼层
试试采用低一些的波特率如9600或2400
wangzsa 发表于 2020-5-8 22:48 | 显示全部楼层
单个数据能正确收发的话,硬件没有问题,怀疑中断响应处理不够快,后面的数据把前面的冲掉了
wangzsa 发表于 2020-5-8 22:51 | 显示全部楼层

楼主不知道参考官方代码吗
pengf 发表于 2020-5-8 22:55 | 显示全部楼层
你试试发送12是不是也是返回12.
wangzsa 发表于 2020-5-8 22:57 | 显示全部楼层
如果发送一个数字是对的,那么就是你处理逻辑上错误的,。。1112会不会当成了一个数字。
huangchui 发表于 2020-5-8 23:00 | 显示全部楼层

可以构建一个接收缓冲数组,中断中仅负责接收缓冲,主程序中负责发送
zhenykun 发表于 2020-5-8 23:03 | 显示全部楼层
试试9600的波特率吧,一般都用这个
jlyuan 发表于 2020-5-8 23:06 | 显示全部楼层
中断程序收发,波特率改低点看看
jlyuan 发表于 2020-5-8 23:08 | 显示全部楼层
跟波特率没啥关系,应该是代码的问题,至于说有啥问题,我也说不出,首先是代码不全,而且跟实际代码可能还不太相符
songqian17 发表于 2020-5-8 23:11 | 显示全部楼层

显然是程序编制问题,好好检查代码吧。
jiaxw 发表于 2020-5-8 23:15 | 显示全部楼层
程序的结构有问题,一个一个处理没有条件限制是不能完成多字节接收的,多字节结束要有结束标致条件,比如时间或者特定字符,想清楚了再写程序。
songqian17 发表于 2020-5-8 23:19 | 显示全部楼层

USART_ClearFlag(USART1,USART_IT_RXNE);这句可能没有达到预期效果
你加一句 ,clearITpend的这句再看看
songqian17 发表于 2020-5-8 23:22 | 显示全部楼层
不要在中断中发送数据,放到中断服务程序外面发送
wenfen 发表于 2020-5-8 23:24 | 显示全部楼层
还是看st官方程序吧
jiaxw 发表于 2020-5-8 23:27 | 显示全部楼层

buffer=temp_trx; ??
这句话没问题么??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

893

主题

8252

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部