/* USER CODE BEGIN PTD */
uint8_t rxbuff = 0;
int flag=0;
extern uint8_t rxbuff ; //这句要加上 ,啥意思不知道
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART1 )
{
if( '1'==rxbuff )//如果接收到字符1
{
HAL_UART_Transmit(&huart1, (uint8_t *)"LED1 翻转 \r\n",12,100); //"LED1 翻转 \r\n" 12个字符
//HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET );
for(int i ;i<35000;i++)
{int a=0;}
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
HAL_UART_Transmit(&huart1, (uint8_t *)"kaile \n",10,100);
flag=1;
}
else if( '2'==rxbuff)//如果接收到字符2
{
HAL_UART_Transmit(&huart1, (uint8_t *)"输入2 \r\n",8,100); //"LED1 翻转 \r\n" 12个字符
for(int i ;i<35000;i++)
{int a=0;}
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13 ,GPIO_PIN_RESET);
// HAL_UART_Transmit(&huart1, (uint8_t *)"开灯了\n",8,100); //"LED1 翻转 \r\n" 12个字符
flag=1;
}
}
}
上面的代码 如果没有 else if 即 没有
else if( '2'==rxbuff)//如果接收到字符2
{
HAL_UART_Transmit(&huart1, (uint8_t *)"输入2 \r\n",8,100); //"LED1 翻转 \r\n" 12个字符
for(int i ;i<35000;i++)
{int a=0;}
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13 ,GPIO_PIN_RESET);
// HAL_UART_Transmit(&huart1, (uint8_t *)"开灯了\n",8,100); //"LED1 翻转 \r\n" 12个字符
程序运行正常 (串口助手输入1 ,执行动作)
有了 发送2 单片机 没反应。
是哪里的问题呢?