OpenEdv-开源电子网

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

为什么我在串口实验中将波特率设置成115200,就接受不到数据?

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2016-1-24
在线时间
0 小时
发表于 2016-1-24 20:54:55 | 显示全部楼层 |阅读模式
1金钱
为什么我在串口实验中将波特率设置成115200,就接受不到数据?有谁能把好的程序给我,是哪里出了问题啊?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2016-1-21
在线时间
29 小时
发表于 2016-1-24 21:24:12 | 显示全部楼层
把发送数据和接收数据的都改成一样的波特率
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2016-1-24
在线时间
0 小时
 楼主| 发表于 2016-1-24 23:48:18 | 显示全部楼层
电机小白 发表于 2016-1-24 21:24
把发送数据和接收数据的都改成一样的波特率

delay_init();                     //延时函数初始化          
        NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        uart_init(115200);         //串口初始化为9600
        LED_Init();                             //LED端口初始化
        KEY_Init();          //初始化与按键连接的硬件接口
while(1){
if(USART_RX_STA&0x8000)
                {                                          
                        len=USART_RX_STA&0x3fff;
                        printf("\r\n???????:\r\n\r\n");
                        for(t=0;t<len;t++)
                        {
                                USART_SendData(USART1, USART_RX_BUF[t]);
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//??????
                        }
                       
                        USART_RX_STA=0;
                }}
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2016-1-24
在线时间
0 小时
 楼主| 发表于 2016-1-24 23:48:35 | 显示全部楼层
小兵禅 发表于 2016-1-24 23:48
delay_init();                     //延时函数初始化          
        NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先 ...

是这样吗?
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2016-1-24
在线时间
0 小时
 楼主| 发表于 2016-1-24 23:49:12 | 显示全部楼层
电机小白 发表于 2016-1-24 21:24
把发送数据和接收数据的都改成一样的波特率

是吗?????
回复

使用道具 举报

14

主题

82

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2014-12-11
在线时间
64 小时
发表于 2016-1-25 08:32:04 | 显示全部楼层
最后要加\r\n才行
回复

使用道具 举报

39

主题

598

帖子

0

精华

高级会员

Rank: 4

积分
875
金钱
875
注册时间
2013-12-18
在线时间
41 小时
发表于 2016-1-25 08:45:42 | 显示全部楼层
波特率在这个上面没啥关系把,你把收发一致了就行了
回复

使用道具 举报

6

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2016-1-19
在线时间
38 小时
发表于 2016-1-25 09:53:28 | 显示全部楼层
这个是开发板的查询例程吧,建议后期用中断。

这部分你可以优化
                        len=USART_RX_STA&0x3fff;
                        printf("\r\n???????:\r\n\r\n");
                        for(t=0;t<len;t++)
                        {
                                USART_SendData(USART1, USART_RX_BUF[t]);
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//??????
                        }

    USART_SendData(USART1, USART_RX_BUF);  
    while( USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET );

收不到数据你可以用串口助手先查看发送是否正常,在去调接收。发送接收方波特率需一致,建议先调低点试试先。
原来你也在这里
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-1-25 10:22:54 | 显示全部楼层
串口调试助手的波特率也改成115200
我有故事,你有酒吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 21:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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