OpenEdv-开源电子网

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

求助 新唐 485中断接收程序

[复制链接]

4

主题

11

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2011-11-11
在线时间
0 小时
发表于 2012-8-1 09:43:18 | 显示全部楼层 |阅读模式

  发射已经做好啦,就接收中断没数据出来,不知那出问题啊,求解
 
void uart_init (void)
{
     /* Step 1. GPIO initial */
 SYS->GPBMFP.UART0_RX  =1;     //接收
 SYS->GPBMFP.UART0_TX  =1;     //发射
    
 /* Step 2. Enable and Select UART clock source*/  
 UNLOCKREG();
 SYSCLK->WRCON.XTL12M_EN = 1;
 LOCKREG();
  
 SYSCLK->APBCLK.UART0_EN = 1;//Enable UART clock
 SYSCLK->CLKSEL1.UART_S = 0; //Select 12Mhz for UART clock source                     
 SYSCLK->CLKDIV.UART_N = 0; //UART clock source = 12Mhz;

 /* Step 3. Select Operation mode */
 UART0->FCR.TFR =1;   //Reset Tx FIFO
 UART0->FCR.RFR =1;   //Reset Rx FIFO

 UART0->FCR.RFITL = 0;//Set Rx Trigger Level -1byte FIFO 
 UART0->LCR.PBE = 0;//Disable parity
 UART0->LCR.WLS = 3;//8 data bits
 UART0->LCR.NSB = 0;//Enable 1 Stop bit
  
 /* Step 4. Set BaudRate */
 UART0->BAUD.DIV_X_EN = 1;
 UART0->BAUD.DIV_X_ONE   = 1;
 UART0->BAUD.BRD = 12000000 / 115200  -2;


 /* Step 5.open interrupt*/
 UART0->IER.RDA_IEN = 1;   //开接收中断
 UART0->IER.THRE_IEN = 0;  //关发送中断
 NVIC_EnableIRQ(UART0_IRQn);                    
}

void SendChar(int ch)
{
 while(UART0->FSR.TX_FULL == 1);
 UART0->DATA = ch;
    if(ch == '\n')
    {
        while(UART0->FSR.TX_FULL == 1);
        UART0->DATA = '\r';
    } 
}
 
void UART0_IRQHandler(void)
{
  if( UART0->ISR.RDA_IF)       数据中断标志位
   {   
    RS485_Buf[RS485_Cnt] = UART0->DATA;
      }
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-8-1 11:23:07 | 显示全部楼层
不中断的接收实现了么?
另外485的A,B信号不能调转,否则可能导致接收数据不正常(昨晚测试的时候发现的,A,B对调的话,数据就不正常了,CAN也是,CAN的接反了直接就没反应了...)
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2011-11-11
在线时间
0 小时
 楼主| 发表于 2012-8-1 12:18:21 | 显示全部楼层
那个还没试呢,等一下看看
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-8-1 12:27:22 | 显示全部楼层
先实现一个简单的,在做稍微复杂点的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2012-8-31
在线时间
66 小时
发表于 2013-2-1 09:30:09 | 显示全部楼层
直接用的485功能吗?
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2013-2-23
在线时间
0 小时
发表于 2013-2-23 16:41:02 | 显示全部楼层
关注----
回复 支持 反对

使用道具 举报

0

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2012-12-8
在线时间
21 小时
发表于 2013-4-14 22:12:33 | 显示全部楼层
上月开始接触新塘m0
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2013-7-16
在线时间
0 小时
发表于 2013-7-16 09:05:41 | 显示全部楼层
有意思,很感兴趣。
回复 支持 反对

使用道具 举报

4

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2013-8-8
在线时间
2 小时
发表于 2013-8-15 11:53:16 | 显示全部楼层
回复【2楼】正点原子:
不中断的接收实现了么? 另外485的A,B信号不能调转,否则可能导致接收数据不正常(昨晚测试的时候发现的,A,B对调的话,数据就不正常了,CAN也是,CAN的接反了直接就没反应了...)
---------------------------------
之前在做消防设备的时候,利达的CAN_BUS总线上接的模块 ,可以信号线互换。 听说他们做到这一点就是在信号线前面加了个整流桥。 不妨正点兄试验下。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-15 14:17:49 | 显示全部楼层
回复【9楼】zxc2769:
---------------------------------
谢谢建议。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2013-8-8
在线时间
2 小时
发表于 2013-8-15 16:40:20 | 显示全部楼层
回复【10楼】正点原子:
回复【9楼】zxc2769: --------------------------------- 谢谢建议。
---------------------------------

printf("* QQ : 1295744630 \r\n");


RF_PORT_sINT();

GPIO_ExternalPullUpConfig(GPIOA,GPIO_PIN_7,0X11);//这里故意将参数写错,验证断言函数能否正确打印错误文件名和错误行号!

void assert_failed(uint8_t* file, uint32_t line)

/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

/* Infinite loop */
  
        printf("Wrong parameters value: file %s on line %d\r\n", file, line);
        while(1);

}

但是打印的结果挺意外的哦 !

求正点原子歌发给printf重定义函数哦
回复 支持 反对

使用道具 举报

4

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2013-8-8
在线时间
2 小时
发表于 2013-8-15 16:43:42 | 显示全部楼层
 


回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-15 18:57:31 | 显示全部楼层
回复【12楼】zxc2769:
---------------------------------
新塘的MCU没搞过啊...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-15 00:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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