OpenEdv-开源电子网

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

大神帮我看一下,自己写的这个简单的串口代码错在哪里

[复制链接]

92

主题

202

帖子

0

精华

高级会员

Rank: 4

积分
637
金钱
637
注册时间
2014-3-14
在线时间
95 小时
发表于 2014-3-29 09:51:29 | 显示全部楼层 |阅读模式
 我发个代码。。谁有时间帮我看一下好吗?
大概意思就是  我输入“开门”字符串,然后“实验数据读入成功”就通过串口发出去     。。。现在就是“实验成功读入” 发不出去



 int main(void)
 {

    u8 mm[]="开门";
    u8 *str="实验数据读入成功";
        SystemInit();//系统时钟等初始化
delay_init(72);     //延时初始化
NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600);//串口初始化为9600
  LED_Init(); //LED端口初始化

      while(1)
{
  
if(strcmp(USART_RX_BUF,mm)==0) //比较如果USART_RX_BUF【】与mm【】
{ //内容一样就打印出  过断点
                 printf("过断点\n"); //然后把“*str实验数据成功读入” 发送到串口
while(*str)
{
USART_SendData(USART1,*str++);  //把“实验成功读入”发送到串口
while((USART1->SR&0X40)==0);//等待发送结束
 
}
}
              }
  }






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

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-29 11:07:31 | 显示全部楼层
USART_SendData(USART1,*str++);  //把“实验成功读入”发送到串口
while((USART1->SR&0X40)==0);//等待发送结束

这两句调换位置试试
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13083
金钱
13083
注册时间
2012-11-26
在线时间
3809 小时
发表于 2014-3-29 11:55:07 | 显示全部楼层
逻辑上就有问题
学无止境
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13083
金钱
13083
注册时间
2012-11-26
在线时间
3809 小时
发表于 2014-3-29 12:06:12 | 显示全部楼层


int main(void)
 {

   char  *mm="开门";
   char *str = "我爱你";
delay_init();
NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600);//串口初始化为9600
  LED_Init(); //LED端口初始化

      while(1)
{

if((strcmp(USART_RX_BUF,mm))==0)
{
printf("过断点\r\n");
while(*str!='\0')
{
USART_SendData(USART1, *str);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
      str++ ;
 
}
}

              
 }
 
}

楼主可以看下效果
当然这样的逻辑只可以从上到下跑一次  因为str已经到末尾了  再往后就没了











学无止境
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-13 00:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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