关于stm32f7的UART7中断接收的问题

2019-07-20 17:27发布

刚接触单片机不久,若有不清楚的地方,请批评指正,谢谢!
想做RS485实现两个单片机的通信,在接收中断这遇到问题,描述见下面:
HAL_UART_Receive(&huart7,receive_data,len,100);用阻塞模式能收到计算机发来的数据然后有个函数HAL_UART_Receive_IT(&huart7,receive_data,len);是用在中断模式 问题一:中断模式与阻塞模式是怎么进入的  什么时候用这个函数啊
下面是UART7的中断函数
[mw_shl_code=applescript,true]void UART7_IRQHandler(void)//这是参考书上例程改的 ,HAL库的函数刚运用,还不大熟
{
  /* USER CODE BEGIN UART7_IRQn 0 */
        //uint8_t res;
        if(HAL_UART_GetState(&huart7) != RESET )//接收到数据
        {
                HAL_GPIO_WritePin(GPIOE,RE_Pin, GPIO_PIN_RESET);//使能接收
                HAL_UART_Receive(&huart7,RS485_RX_BUF,1,100);
                HAL_GPIO_WritePin(GPIOE,RE_Pin, GPIO_PIN_SET);//关闭使能接收
                if(RS485_RX_CNT<64)
                {
                       
                        RS485_RX_BUF[RS485_RX_CNT]=RS485_RX_BUF[0];
                        RS485_RX_CNT++;
                }
        }
  /* USER CODE END UART7_IRQn 0 */
  HAL_UART_IRQHandler(&huart7);

}[/mw_shl_code]


再就是主函数不知道怎么写,已经把这几个HAL库的函数和例程函数改造了很多次了,请大家帮忙给理一理思路,谢谢你们!

0条回答

一周热门 更多>