怎么判断32串口接收的数据(急)

2019-08-19 20:08发布

我想用电脑给32发个01,然后检测到01,就开灯,为什么不行,求帮忙看看
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
Huasen
1楼-- · 2019-08-20 00:08
 精彩回答 2  元偷偷看……
zhoutong
2楼-- · 2019-08-20 05:01
检查是否开启了接收中断,进入调试模式检查相关寄存器位是否设置,在中断函数里设置断点,当pc
zhoutong
3楼-- · 2019-08-20 06:53
当PC发送数据的时候是否能进入中断函数,另外要注意发送格式
龙之谷
4楼-- · 2019-08-20 08:43
判USART_RX_BUF==0X49试试
absflash
5楼-- · 2019-08-20 11:07
对照这个配置看看,还有个中断优先级,一般默认即可

void RCC_Configuration(void)   
{     
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);     
}   
  
void GPIO_Configuration(void)   
{   
  GPIO_InitTypeDef GPIO_InitStructure;   
   
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;             //管脚9  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;       //复用推挽输出  
  GPIO_Init(GPIOA, &GPIO_InitStructure);                //TX初始化  
   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;            //管脚10  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入         
  GPIO_Init(GPIOA, &GPIO_InitStructure);                //RX初始化  
     
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);   
}   
  
void USART_Configuration(void)//串口初始化函数  
{  
    //串口参数初始化   
    USART_InitTypeDef USART_InitStructure;               //串口设置恢复默认参数  
    //初始化参数设置  
    USART_InitStructure.USART_BaudRate = 9600;                  //波特率9600  
    USART_InitStructure.USART_WordLength = USART_WordLength_8b; //字长8位  
    USART_InitStructure.USART_StopBits = USART_StopBits_1;      //1位停止字节  
    USART_InitStructure.USART_Parity = USART_Parity_No;         //无奇偶校验  
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无流控制  
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//打开Rx接收和Tx发送功能  
    USART_Init(USART1,&USART_InitStructure);                   //初始化  
      
    USART_ITConfig(USART1,USART_IT_TXE,ENABLE);                //允许串口1发送中断。  
    USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);               //允许串口1接收中断。  
    USART_Cmd(USART1,ENABLE);                                  //启动串口  
    USART_ClearFlag(USART1,USART_FLAG_TC);                     //发送完成标志位  
}   
void NVIC_Configuration(void)//配置中断优先级   
{   
  NVIC_InitTypeDef NVIC_InitStructure;   
      
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);   
      
  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;   
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;   
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;   
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   
  NVIC_Init(&NVIC_InitStructure);   
}
dreamARM
6楼-- · 2019-08-20 14:11
 精彩回答 2  元偷偷看……

一周热门 更多>