野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7277|回复: 5

串口试验的问题,,已经简单的用1,2,3点亮led灯,

[复制链接]
发表于 2019-6-20 15:18:05 | 显示全部楼层 |阅读模式
串口试验的问题,,已经简单的用1,2,3点亮led灯,但是我想用数组的形式点亮出现了一些问题
回复

使用道具 举报

 楼主| 发表于 2019-6-20 15:18:35 | 显示全部楼层
本帖最后由 kaizi35 于 2019-6-20 15:19 编辑

uint8_t kaiji[5]={0xff,0xcc,0xcc,0xcc,0xff};                        
      USART_Config();        
            LED_GPIO_Config();
                        Usart_SendArray(DEBUG_USARTx,kaiji,5);
         // Usart_SendHalfWord(DEBUG_USARTx, 0xff);
                        //        Usart_SendByte(DEBUG_USARTx,'A');         
  //        Usart_SendStr(DEBUG_USARTx, "欢迎使用秉火STM32F103开发板 \n");
  //        printf( "串口printf函数测试\n");
           
        
                                while(1)
                        {                          
                                                
                                                uint8_t chcopy[10]={0};
                                                uint8_t chcount=0;

                                while(chcount<10)
                                //                for(;chcount<10;chcount++)
                          {
                                                chcopy[chcount]=getchar();
                                                chcount++;
                                }
                                                
                                                
                if(chcopy[0]==0xff&&chcopy[1]==0xcc&&chcount==10)
                                                {                        
                     Usart_SendArray(DEBUG_USARTx,chcopy,10);
                                 USART_Config();
        
                                switch(chcopy[2])
                        {
                                        case 1:
                                                     LED_RED;
                                         delay_ms(5000);
                                               LED_RGBOFF;
                                break;
                                
                                        case 2ED_GREEN;
                                 
                                break;
                                
                                        case 3ED_BLUE;
                                                
                          break;
                                
                                  case 4ED_RGBOFF;
                                                
                          break;
                                       
                                default:     break;
                        }        
                    
                        }else
                        {
                          Usart_SendHalfWord(DEBUG_USARTx, 0xffee);
                                USART_Config();
                                
                        }
                        
        
                       }
        
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-20 15:19:25 | 显示全部楼层
[mw_shl_code=c,true] uint8_t kaiji[5]={0xff,0xcc,0xcc,0xcc,0xff};                       
      USART_Config();       
            LED_GPIO_Config();
                        Usart_SendArray(DEBUG_USARTx,kaiji,5);
         // Usart_SendHalfWord(DEBUG_USARTx, 0xff);
                        //        Usart_SendByte(DEBUG_USARTx,'A');          
  //        Usart_SendStr(DEBUG_USARTx, "欢迎使用秉火STM32F103开发板 \n");
  //        printf( "串口printf函数测试\n");
          
       
                                while(1)
                        {                         
                                               
                                                uint8_t chcopy[10]={0};
                                                uint8_t chcount=0;

                                while(chcount<10)
                                //                for(;chcount<10;chcount++)
                          {
                                                chcopy[chcount]=getchar();
                                                chcount++;
                                }
                                               
                                               
                if(chcopy[0]==0xff&&chcopy[1]==0xcc&&chcount==10)
                                                {                       
                     Usart_SendArray(DEBUG_USARTx,chcopy,10);
                                 USART_Config();
        
                                switch(chcopy[2])
                        {
                                        case 1:
                                                     LED_RED;
                                         delay_ms(5000);
                                               LED_RGBOFF;
                                break;
                               
                                        case 2ED_GREEN;
                                  
                                break;
                               
                                        case 3ED_BLUE;
                                               
                          break;
                               
                                  case 4ED_RGBOFF;
                                               
                          break;
                                       
                                default:     break;
                        }       
                    
                        }else
                        {
                          Usart_SendHalfWord(DEBUG_USARTx, 0xffee);
                                USART_Config();
                               
                        }
                         
       
                       }
       
} [/mw_shl_code]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-20 15:22:57 | 显示全部楼层
就是我不是很清楚我通过串口发送正确的数组如果发送的过快会出现卡死的情况。。还有数组超过10个或者少于10个怎么个判定才能不陷入死循环
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-20 15:25:22 | 显示全部楼层
串口测试图
QQ截图20190620152322.jpg
QQ截图20190620152339.jpg
QQ截图20190620152420.jpg
回复 支持 反对

使用道具 举报

发表于 2019-6-20 17:59:09 | 显示全部楼层
不要用getchar()这种写法了,看例程学下用接收中断吧,然后为什么你的程序几个地方重复配置一遍串口?USART_Config();
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-30 05:20 , Processed in 0.035200 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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