你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
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);
赞
0
收藏
0
评论
4
分享
发布时间:2017-6-16 14:41
举报
请先
登录
后回复
4个回答
yukaigogogo
回答时间:2017-6-16 14:57:56
a0a.1 32b0c
MX 里面的串口配置发一下
赞
0
评论
回复
支持
反对
洛千叶
回答时间:2017-6-16 16:08:55
a0a.1 32b0c
yukaigogogo 发表于 2017-6-16 14:57
MX 里面的串口配置发一下
没有多少要配置的
赞
0
评论
回复
支持
反对
洛千叶
回答时间:2017-6-16 16:17:06
a0a.1 32b0c
解决了,方法如下
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);
通过以上步骤串口成功进入中断
赞
0
评论
回复
支持
反对
yukaigogogo
回答时间:2017-7-7 15:00:56
a0a.1 32b0c
你不启动接收,谁会帮你收啊。
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
没有多少要配置的
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);
通过以上步骤串口成功进入中断