你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

CubeMx配置的工程不能进入串口中断,帮忙看下,谢谢!

[复制链接]
洛千叶 提问时间:2017-6-16 14:41 /
使用最新的CubeMx配置的串口工程不能进入中断,使能了串口中断,DR寄存器的值一直在变化就是不进中断,SR寄存器的值一直不变化,求解决办法
__HAL_UART_ENABLE_IT(&huart2, UART_IT_ERR);
__HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE);

QQ图片20170616143623.png
收藏 评论4 发布时间:2017-6-16 14:41

举报

4个回答
yukaigogogo 回答时间:2017-6-16 14:57:56
MX 里面的串口配置发一下
洛千叶 回答时间:2017-6-16 16:08:55
yukaigogogo 发表于 2017-6-16 14:57
MX 里面的串口配置发一下

没有多少要配置的
QQ图片20170616160604.png
QQ图片20170616160610.png
洛千叶 回答时间:2017-6-16 16:17:06
解决了,方法如下
1.初始化的时候添加一个中断接收
/* USER CODE BEGIN USART2_MspInit 0 */

  /* USER CODE END USART2_MspInit 0 */
    /* Peripheral clock enable */
    __HAL_RCC_USART2_CLK_ENABLE();
  
    /**USART2 GPIO Configuration   
    PA2     ------> USART2_TX
    PA3     ------> USART2_RX
    */
    GPIO_InitStruct.Pin = GPIO_PIN_2;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_3;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    /* USART2 interrupt Init */
    HAL_NVIC_SetPriority(USART2_IRQn, 5, 0);
    HAL_NVIC_EnableIRQ(USART2_IRQn);
  /* USER CODE BEGIN USART2_MspInit 1 */
   HAL_UART_Receive_IT(&huart2,(uint8_t *)&s_ucTemp,1);
2.main函数初始化串口后添加如下函数
__HAL_UART_ENABLE_IT(&huart2, UART_IT_PE);
__HAL_UART_ENABLE_IT(&huart2, UART_IT_ERR);
__HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE);
3.接收中断中
HAL_UART_IRQHandler(&huart2);
  /* USER CODE BEGIN USART2_IRQn 1 */
__HAL_UART_ENABLE_IT(&huart2, UART_IT_PE);
__HAL_UART_ENABLE_IT(&huart2, UART_IT_ERR);
__HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE);
通过以上步骤串口成功进入中断
yukaigogogo 回答时间:2017-7-7 15:00:56
你不启动接收,谁会帮你收啊。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版