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

查看: 5846|回复: 4

求助!HAL库函数 串口中断接收!急急急!

[复制链接]

7

主题

50

回帖

0

蝴蝶豆

中级会员

最后登录
2020-4-28
发表于 2015-1-16 09:30:13 | 显示全部楼层 |阅读模式
首先介绍一下实验环境:单片机为stm32f415
调试器:st-link

硬件初始化:
*串口波特率为614400
*采用定时器每隔500us触发一次串口中断发送
*发送完成后进入中断接收模式

定时器中断回调函数如下:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
        if(htim==&htim14)
        {
                GYRO_Handle.cmd_GYRO=GYRO_CMD;               
                HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET);                                  使能发送
                HAL_UART_Transmit_IT(&huart3, &GYRO_Handle.cmd_GYRO, 1);                         开启中断发送,然后进入发送模式
        }
}




发送完成后进入发送中断完成回调函数:
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
        if(huart==&huart3)
        {
                HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);                                使能接收
                HAL_UART_Receive_IT(&huart3, GYRO_Handle.frame_GYRO, 7);                        开启中断接收,然后进入接收模式
        }
}


接收中断完成回调函数:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
        if(huart==&huart3)
        {
                 用户函数区域
        }
}


实验结果:

发送没有问题,可成功发送。
接收只能收到第一个字节。
接收服务函数老是进入错误服务函数,错误号为数据溢出

已经分析两天了,还是没有找到问题,求大师分析。


回复

使用道具 举报

76

主题

5715

回帖

4

蝴蝶豆

论坛元老

最后登录
2020-10-15
发表于 2015-1-16 09:46:08 | 显示全部楼层
3.png
回复 支持 反对

使用道具 举报

7

主题

50

回帖

0

蝴蝶豆

中级会员

最后登录
2020-4-28
 楼主| 发表于 2015-1-16 10:12:28 | 显示全部楼层
回复 支持 反对

使用道具 举报

7

主题

50

回帖

0

蝴蝶豆

中级会员

最后登录
2020-4-28
 楼主| 发表于 2015-1-16 10:18:34 | 显示全部楼层

我帖子没加,重新发帖?还是怎么转给你
回复 支持 反对

使用道具 举报

7

主题

50

回帖

0

蝴蝶豆

中级会员

最后登录
2020-4-28
 楼主| 发表于 2015-1-16 10:34:01 | 显示全部楼层
回复 支持 反对

使用道具 举报

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版