用HAL库改写江科大的stm32入门例子_9-2 利用中断进行串口通讯

电路和 《用HAL库改写江科大的stm32入门例子_9-1》一致。

我们在whlie循环当中,不断查询端口,获取数据,存放到一个数组当中,同时回显给电脑上。这种方法耗费cpu,还是用中断进行串口通讯更合理。

编写用户代码

配置完成后,重新生成代码,打开生成的代码,在main.c文件的用户变量去建立串口接收缓冲区数组。

 找到主函数,在while语句之前,开始通过串口中断接收数据。
  HAL_UART_Receive_IT(&huart1, (uint8_t*)data, sizeof(data));
  这句话的意思是以中断的方式从串口1接收数据,接收道到的数据存在data数组中,每次接收2个字节。 

ps:STM32CubeMX系列教程4:基本串行通信

上个结果图:

注意串口中断回调函数中,要判断串口的来源,因为所有串口中断都用这个回调函数,同时要注意,在这个回调函数中重新开启中断接收。

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
  	if(huart->Instance == USART1)   //判断中断是否来自于串口1
	{
		HAL_UART_Transmit_IT(&huart1,(uint8_t*)rx_data,2);  //将接收到的数据通过中断的方式发送出去
		HAL_UART_Receive_IT(&huart1,(uint8_t*)rx_data,2);	//开始接收下一轮数据
	}
}

其他不赘述。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值