OpenEdv-开源电子网

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

原子哥,帮我看看这段串口接收程序有什么问题吗?为什么用串口调试助手接收不到正确信息呢?

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-5-27
在线时间
0 小时
发表于 2015-5-27 11:53:36 | 显示全部楼层 |阅读模式
5金钱
原子哥,帮我看看这段串口接收程序有什么问题吗?为什么用串口调试助手接收不到正确信息呢?

#include"stm32f10x_map.h"
 u8 res;
 
 int main()
 {
 RCC->APB2ENR|=1<<14;  //开启USART时钟
 RCC->APB2ENR|=1<<2;  //开启GPIOA时钟
 GPIOA->CRH&=0xfffff00f;
 GPIOA->CRH|=0x000004b0;   //PA.09(TX1)复用推挽输出,PA.10(RX1)浮空输入
 USART1->BRR=0x0045;   //设置波特率为115200
 USART1->CR1|=1<<2;   //接收允许
 USART1->CR1|=1<<3;   //发送允许
 USART1->CR1|=1<<13;   //USART允许
 RCC->APB2ENR|=1<<5;   //开启GPIOD时钟
 GPIOD->CRH&=0x0000ffff;
 GPIOD->CRH|=0x33330000;    //设置PD.13位通用推挽输出
 
 while(1)
{
 if(USART1->SR&1<<5)     
 {res=USART1->DR;
 if(res==1)
 GPIOD->ODR=0xffff;}        //如果接收到1,点亮点亮小灯           
 }
}

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

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11473
金钱
11473
注册时间
2014-4-1
在线时间
1297 小时
发表于 2015-5-27 14:02:30 | 显示全部楼层
估计你没有用仿真器调试过。

USART1->SR&1<<5 这一句,确认一下运算符的优先级别,最好加上括号。
回复

使用道具 举报

5

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1130
金钱
1130
注册时间
2015-5-31
在线时间
260 小时
发表于 2015-5-31 10:57:33 | 显示全部楼层
我最近也遇到过这种问题,不过我用的是stm32f429-discovery,我发送一个数据,他给我反馈回来三个(我程序设置时原数反馈),而且是完全对不上,弄了两天,发现时stm32f4xx.h里面时钟是25M,我改成8M就oK了,
stm32f429 -discovery,我不能和他愉快玩耍了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 18:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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