标题: STM32串口发送数字01234 单片机如何接收呢? [打印本页]

作者: c03131401    时间: 2018-12-11 14:31
标题: STM32串口发送数字01234 单片机如何接收呢?
char b[5];
int main(void)
{       
        u8 t;
        u8 len;       
//        u16 times=0;

        delay_init();                     //延时函数初始化       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
        uart_init(9600);         //串口初始化为9600
        LED_Init();                           //初始化与LED连接的硬件接口

        while(1)
        {
                if(USART_RX_STA&0x8000)                  //如果接收完成了
                {                                          
                        len=USART_RX_STA&0x3fff;               //得到此次接收到的数据长度
                        printf("\r\n您发送的消息为:\r\n");      //打印至串口提示
                        for(t=0;t<len;t++)                     //小于接收长度时
                        {
                                USART1->DR=USART_RX_BUF[t];          //依次存入接收缓冲区 将接收缓存送至该数据寄存器,同时发送到串口
                        // a=USART_RX_BUF[t];         
                   b[t]=USART_RX_BUF[t];
                               
                                 while((USART1->SR&0X40)==0);         //等待发送结束
                        }
               
                        printf("\r\n\r\n");//插入换行               

if(b[0]==0x00&&b[1]==0x01&&b[2]==0x02&&b[3]==0x03&&b[4]==0x04) {LED1=!LED1;delay_ms(100); }//接收到123  灯取反               
USART_RX_STA=0;
                }
//结果灯无任何反应,为什么呢?






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1