想要通过串口输入数据控制LED灯,这样可行吗?

2019-07-20 20:44发布

想要通过串口输入数据控制LED灯,下面的中断处理函数可行吗,有哪个地方不对,实际执行是不行的。
//中断处理函数
void USART1_IRQHandler(void)
{
        u8 res;
        if(USART_GetITStatus(USART1,USART_IT_RXNE)){
                res=USART_ReceiveData(USART1);
                USART_SendData(USART1,++res);
                switch(res)
                {
                case 1:
                        GPIO_ResetBits(GPIOF,GPIO_Pin_9);
                case 2:
                        GPIO_ResetBits(GPIOF,GPIO_Pin_10);
                default:
                        GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
                }       
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
stm32f4菜鸟
2019-07-21 05:57
本帖最后由 stm32f4菜鸟 于 2016-8-15 15:05 编辑
xuande 发表于 2016-8-15 14:42
++res
这步已经改变res的值了,注意没?

++去掉了,加了break,执行还是不对。仍然控制不了LED灯,求解//中断处理函数
void USART1_IRQHandler(void)
{
        u8 res;
        if(USART_GetITStatus(USART1,USART_IT_RXNE)){
                res=USART_ReceiveData(USART1);
                USART_SendData(USART1,res);
                switch(res)
                {
                case 1:
                        GPIO_ResetBits(GPIOF,GPIO_Pin_9);
                        break;
                case 2:
                        GPIO_ResetBits(GPIOF,GPIO_Pin_10);
                        break;
                default:
                        GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);
                        break;
                }        
        }


一周热门 更多>