OpenEdv-开源电子网

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

CUBE库串口接收中断回调函数进不去,代码贴上,求帮助!!

[复制链接]

4

主题

6

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2017-2-10
在线时间
4 小时
发表于 2017-2-10 15:55:45 | 显示全部楼层 |阅读模式
5金钱
int main(void)
{
        HAL_Init();
        SystemClock_Config();
        Uart1_Init();
        Uart1_Config();
        if(HAL_UART_Receive_IT(&huart,&aRxBuffer,1)!=HAL_OK)
                HAL_UART_Transmit(&huart, (uint8_t *)&"ERROR\r\n",7,10);
        while (1);
}       
void Uart1_Init(void)
{
        GPIO_InitTypeDef  GPIO_InitStruct;
  __HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_USART1_CLK_ENABLE();
  GPIO_InitStruct.Pin       = GPIO_PIN_9;
  GPIO_InitStruct.Mode      = GPIO_MODE_AF_PP;
  GPIO_InitStruct.Pull      = GPIO_PULLUP;
  GPIO_InitStruct.Speed     = GPIO_SPEED_FREQ_VERY_HIGH;
  GPIO_InitStruct.Alternate = GPIO_AF4_USART1;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = GPIO_PIN_10;
  GPIO_InitStruct.Alternate = GPIO_AF4_USART1;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void Uart1_Config(void)
{
  huart.Instance        = USART1;
  huart.Init.BaudRate   = 9600;
  huart.Init.WordLength = UART_WORDLENGTH_8B;
  huart.Init.StopBits   = UART_STOPBITS_1;
  huart.Init.Parity     = UART_PARITY_NONE;
  huart.Init.HwFlowCtl  = UART_HWCONTROL_NONE;
  huart.Init.Mode       = UART_MODE_TX_RX;
  if(HAL_UART_DeInit(&huart) != HAL_OK)
  {
  }  
  if(HAL_UART_Init(&huart) != HAL_OK)
  {
  }
  HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);
  HAL_NVIC_EnableIRQ(USART1_IRQn);
}
void USART1_IRQHandler(void)  
{
  HAL_UART_IRQHandler(&huart);

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
HAL_UART_Receive_IT(huart,&aRxBuffer,1);      
}
以上代码用于测试串口接收中断,接收中断能进去,但是回调函数HAL_UART_RxCpltCallback就是进不去,我已经纠结好多天了,请各位高手帮忙看看是哪里出了问题,在线等,谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-2-10 19:03:06 | 显示全部楼层
回复

使用道具 举报

11

主题

76

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
447
金钱
447
注册时间
2013-8-4
在线时间
69 小时
发表于 2017-4-2 00:20:29 | 显示全部楼层
串口初始化的时候加上一句
HAL_UART_Receive_IT(&huart1,&Res,1);//该函数会开启接收中断:标志位UART_IT_RXNE,并且设置接收缓冲以及接收缓冲接收最大数据量
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-22 13:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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