OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3621|回复: 2

求教STM32HLA库实现串口2的中断接收,怎么写中断调用函数,或者怎么才能实现功能

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-7-16
在线时间
8 小时
发表于 2018-7-17 15:15:53 | 显示全部楼层 |阅读模式
6金钱
void USART1_IRQHandler(void)                    
{
   
#if SYSTEM_SUPPORT_OS         //使用OS
    OSIntEnter();   
#endif
    if((__HAL_UART_GET_FLAG(&huart2,UART_FLAG_RXNE)!=RESET))
    {
       USART2_RxDispose();
        if (__HAL_UART_GET_IT_SOURCE(&huart2,UART_IT_RXNE)!=RESET)//接收中断
            
         USART2_RxDispose();
        
      HAL_NVIC_ClearPendingIRQ(USART2_IRQn);//清除接收中断标志位
         
  if (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_ORE) != RESET)//状态标志位
{
      __HAL_UART_CLEAR_FLAG(&huart2, UART_FLAG_ORE);   //清除状态标志位
     (void)HAL_UART_Receive_IT(&huart2,RxBuffer,1);
  }
    }
    HAL_UART_IRQHandler(&huart2);   
#if SYSTEM_SUPPORT_OS         //使用OS
    OSIntExit();                                               
#endif
}





uint8_t Uart2_PutChar(uint8_t ch)
{
    /* Write a character to the USART */
    HAL_UART_Transmit(&huart2,(uint8_t *)&ch,100,0x1fff);//向串口2发送U8里面的数据   
    while(__HAL_UART_GET_FLAG(&huart2,UART_FLAG_TC)!=SET);        //等待发送结束
    return ch;
}

/*******************************************************************
功能:    写串口2函数
描述:    往串口2发送数据,用到以下全局变量:
参数:    sentchar-发送数据缓冲区
        length-发送数据长度
返回值:无
*******************************************************************/

void WriteComm2(uint8_t *buffer,uint32_t count)
{
    uint32_t iCnt;
    for(iCnt=0;iCnt<count;iCnt++)
    {
        Uart2_PutChar(buffer[iCnt]);
    }
}
   
        
void USART2_RxDispose(void)
{
    unsigned char ucRece;
   
    ucRece = HAL_UART_Receive_IT(&huart2,RxBuffer,1);//Read received data
     
   


最佳答案

查看完整内容[请看2#楼]

阿参考下我们例程的485,HAL库版本,485例程。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-7-17 15:15:54 | 显示全部楼层
遇见11111 发表于 2018-7-17 15:17
修正:是怎样写中断回调函数。

阿参考下我们例程的485,HAL库版本,485例程。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-7-16
在线时间
8 小时
 楼主| 发表于 2018-7-17 15:17:18 | 显示全部楼层
修正:是怎样写中断回调函数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-29 19:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表