刚接触单片机不久,若有不清楚的地方,请批评指正,谢谢!
想做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库的函数和例程函数改造了很多次了,请大家帮忙给理一理思路,谢谢你们!
一周热门 更多>