OpenEdv-开源电子网

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

485串口接收中断只能进入一次,以后就进不去了

[复制链接]

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-3-28
在线时间
0 小时
发表于 2015-10-20 21:23:04 | 显示全部楼层 |阅读模式
5金钱
问题描述 :在淘宝买了一块51接口板 有485接口,向他发送固定格式的指令就会返回传感器的信息 .  stm32写程序按一次发送一次这种格式的指令,但是只有第一次发送会返回数据,第二次按就进入不了接收中断了 。重启stm32还是这样。  找了两天问题也没找到,求原子哥给点拨点拨
主要代码: 
[mw_shl_code=c,true]
[mw_shl_code=c,true]
[mw_shl_code=c,true]//发送读数据指令 //返回0表示发送完毕 int cmd_read() { unsigned char readCmd[8]={0x01, 0x03, 0x90, 0x01, 0, 0x09, 0xF9, 0x0C}; int i=0; TX_Mode();//发送模式 for(i=0;i<8;i++) { USART_SendData(USART3, readCmd);//发送数据 while(USART_GetFlagStatus(USART3,USART_FLAG_TXE) == RESET); } delay_us(500);//不延时第一次按都进不了中断,不知道为什么 RX_Mode();//接收模式 return 0; } [/mw_shl_code]

[mw_shl_code=c,true]int main(void) { u8 i = 0,k; u8 res=1; SystemInit();//系统初始化,主频设置为72MHz delay_init(72);//滴答时钟初始化设置 USART1_Config();//串口输出初始化 RS485_Config(); //485初始化 NVIC_485_Configuration();//485中断初始化 GPIO_KEY_Config();//按键初始化 printf("\r\n RS485测试 \r\n"); USART_Cmd(USART3, ENABLE); USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//使能接收中断[/mw_shl_code]   RX_Mode(); [mw_shl_code=c,true] while(1) { if(ReadKey()== KEY1) { printf("开始发送指令\n"); res=cmd_read(); while(res);//等待指令发送完毕 printf("指令发送完毕\n"); while(RxCounter < RxBufferSize)//等待接收完成 { ; } printf("\n\r接收到的数据:"); for(k=0;k<RxCounter;k++) printf("%x ",RxBuffer[k]);//打印接收数据 printf("\n"); res=1; RxCounter = 0;//清空接收计数 } } }[/mw_shl_code] void USART3_IRQHandler(void) //rs485中断
{
  if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到数据
  {
      USART_ClearITPendingBit(USART3, USART_IT_RXNE);//清除接收中断标志位
    RxBuffer[RxCounter++] = USART_ReceiveData(USART3);//读取接收数据
}
}


[/mw_shl_code]

[/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-3-28
在线时间
0 小时
 楼主| 发表于 2015-10-20 21:28:52 | 显示全部楼层


串口助手接受的数据  
第一次按key1有数据返回 ,第二次 指令发送完,没有数据返回 
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-10-20 22:12:18 | 显示全部楼层
得仿真跟踪看代码.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 12:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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