OpenEdv-开源电子网

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

stm32f101c8 串口接收中断

[复制链接]

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-6-22
在线时间
3 小时
发表于 2015-3-24 15:57:09 | 显示全部楼层 |阅读模式
5金钱

数据帧的格式如上所示:

接收中断代码为:

[mw_shl_code=c,true]void USART1_IRQHandler(void) { //////////////////////usart rcv handle//////////////////////////// if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { USART_ClearITPendingBit(USART1, USART_IT_RXNE); if (!Rcv_Finish) { if (recept_bit1)//recept_bit1??????0 { if (Rev_num < recp_num1) { rcv_data = USART_ReceiveData(USART1); RecData[Rev_num] = rcv_data; Rev_num++; } if (Rev_num >= recp_num1) { recept_bit1=0; Rev_num=0; Rcv_Finish = 1; } } else { /////////////////////////////////////// if (sig_head1==0) { rcv_data = USART_ReceiveData(USART1); if (rcv_data==0x55)//'U' { sig_head1++; } else { sig_head1=0; return; } } /////////////////////////////////////// else if (sig_head1==1) { rcv_data = USART_ReceiveData(USART1); if (rcv_data==0x70)//'p' { sig_head1++; } else { sig_head1=0; return; } } /////////////////////////////////////// else if (sig_head1==2) { rcv_data = USART_ReceiveData(USART1); if (rcv_data==0x01)//gprs { sig_head1++; } else { sig_head1=0; return; } } /////////////////////////////////////// else if (sig_head1==3)//length low { recp_num1 = USART_ReceiveData(USART1); sig_head1++; } /////////////////////////////////////// else if (sig_head1==4)//length hight { rcv_data = USART_ReceiveData(USART1); recp_num1 += rcv_data * 256; sig_head1=0; recept_bit1=1; } } } else { //???????í???????????????????ù????°????????????????? rcv_data = USART_ReceiveData(USART1); rcv_data = rcv_data; return; } }[/mw_shl_code] [mw_shl_code=c,true]}[/mw_shl_code]

然后假如在上图的1处打个断点,然后再按单步执行,代码会一直走到3处。

不知道是什么问题??

求帮助,谢谢~~

最佳答案

查看完整内容[请看2#楼]

好像是刚开始设置的优化等级太高了,刚开始测试的是 Level3,现在改成Level0就好了。 这个我从官网上下了个工程,然后在那个基础上改的,所以也没有往这方面想,所以就。。。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2014-6-22
在线时间
3 小时
 楼主| 发表于 2015-3-24 15:57:10 | 显示全部楼层


好像是刚开始设置的优化等级太高了,刚开始测试的是 Level3,现在改成Level0就好了。

这个我从官网上下了个工程,然后在那个基础上改的,所以也没有往这方面想,所以就。。。。。

回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 15:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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