OpenEdv-开源电子网

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

STM32串口问题,本人萌新求各位大佬指点

[复制链接]

3

主题

11

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-7-10
在线时间
7 小时
发表于 2019-7-10 10:36:36 | 显示全部楼层 |阅读模式
4金钱
void USART1_IRQHandler(void)              

{
u8 r,i;
u16 k;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
  r =USART_ReceiveData(USART1);//(USART1->DR);
  USART_SendData(USART1,r);
  while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);
}
if(i=='1')
{
  for(k=0;k<400;k++)
  {
   k++;
   if(k%20==0)
   {
    led1=!led1;
    delay_ms(1000);
   }
   delay_ms(10);
  }
}
USART_ClearFlag(USART1,USART_FLAG_TC);
}  

串口接收数据转化为LED灯闪烁,输入1LED1开始闪烁

串口接收数据转化为LED灯闪烁,输入1LED1开始闪烁
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-7-10
在线时间
7 小时
 楼主| 发表于 2019-7-10 10:37:32 | 显示全部楼层
各位大佬不知道问题在哪里
回复

使用道具 举报

0

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
887
金钱
887
注册时间
2018-4-20
在线时间
491 小时
发表于 2019-7-10 10:45:35 | 显示全部楼层
接收的数据不是r吗?和i有什么关系。还有,中断最好不要加延时
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-7-10
在线时间
7 小时
 楼主| 发表于 2019-7-10 10:46:10 | 显示全部楼层
应该是if (r==1)打错了,还是有问题
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-7-10
在线时间
7 小时
 楼主| 发表于 2019-7-10 10:47:41 | 显示全部楼层
大佬应该怎么改,那个是打错了
回复

使用道具 举报

9

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2015-10-16
在线时间
49 小时
发表于 2019-7-10 18:29:09 | 显示全部楼层
本帖最后由 aaa405944519 于 2019-7-10 18:56 编辑

我说几点你的问题1.中断里面有延迟,
2.for 里面有k++,循环里面还有k++,不清楚你是有意加的还是写错?这会造成你的if(k%20==0) 无法进去,你仔细思考一下。
3.接收函数给的是变量r,你后面判断函数却是i?
4.现象与问题说清楚,而不只是说要实现什么功能,并且最好把配置代码也发出来。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 05:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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