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

查看: 5856|回复: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版