搜索
bottom↓
回复: 3

cortexM0 RS485通信出现的怪问题~~~

[复制链接]

出0入0汤圆

发表于 2012-8-25 17:27:35 | 显示全部楼层 |阅读模式
P3_MFP = P3_MFP & (~(P31_TXD0 | P30_RXD0)); //配置P3.1和P3.0为UART功能
P3_MFP |=TXD0 | RXD0;
//P0_MFP &= ~(P03_AD3_RTS0 | P02_AD2_CTS0);
//P0_MFP |= (RTS0 | CTS0);
IPRSTC2 |= UART0_RST;                            //复位UART模块
IPRSTC2 &= ~UART0_RST;                           //UART模块从复位状态恢复到正常工作状态

APBCLK |= UART0_CLKEN;                           //使能UART时钟
CLKSEL1 = CLKSEL1 & (~UART_CLK );              //选择PLL时钟源
CLKSEL1 |= UART_PLL;                        //选择倍频为48M的时钟
CLKDIV &= ~(15<<8);                              //设置UART时钟除频值为0

UA0_FCR |= TX_RST;                               //复位发送FIFO
UA0_FCR |= RX_RST;                               //复位接收FIFO
UA0_FCR |=RX_DIS;
UA0_FCR |=RFITL_1;                //中断级别为1字节
UA0_LCR &= ~PBE;                                 //校验位禁止
UA0_LCR = (UA0_LCR & (~WLS)) | WL_8BIT;          //数据宽度为8位
UA0_LCR &= NSB_ONE_HALF;                              //2位停止位
UA0_FUN_SEL |=RS485_EN;                //RS485模式
UA0_RS485_CSR &=~(RS485_ADD_EN|RS485_AAD);                                //关闭地址识别
UA0_RS485_CSR |=RS485_NMM;                                                //设置为普通模式
UA0_RS485_CSR &=~RS485_AUD;                                    //关闭自动方向模式
NVIC_ISER =UART0_INT;                              //使能中断向量
UA0_IER        |=RLS_IEN | RDA_IEN;                             //使能中断
UA0_BAUD |= DIV_X_EN;                            //模式2:DIV_X_EN = 1
UA0_BAUD |= DIV_X_ONE;                           //模式2:DIV_X_ONE =1
UA0_BAUD |= ((48000000 / 250000) - 2);           //设置波特率为250000,模式2波特率=UART_CLK/(UA_BAUD+2)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
为了读取DMX的数据,根据M0手册和一些例程,自己弄了上面的初始化,可是在接收RS485数据的时候出现了个奇怪的问题:
DMX512数据线还没接上的时候,芯片上电,程序进不了中断,这个相对来说是正常现象,因为没有收到数据!!
可是,一接上数据线,DMX512还没上电,芯片先上电,程序竟然进去中断了,而且是不断的重复执行中断里面的内容,给DMX512上电调数据也停止不了它重复执行中断内容(依然不断的发生中断)!!太奇怪了,求高手解释?
还有,DMX512先上电的,然后芯片上电,程序无论怎么调DMX512数据都进去不了中断。为什么呢呢呢?????
有没有路过的朋友有类似的情况啊,求分享一下经验!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-8-25 17:51:52 | 显示全部楼层
用的那个的芯片?

出0入0汤圆

 楼主| 发表于 2012-8-25 17:54:49 | 显示全部楼层
vvv9876 发表于 2012-8-25 17:51
用的那个的芯片?

新唐M0516LAN

出0入0汤圆

 楼主| 发表于 2012-8-25 17:58:22 | 显示全部楼层
怀疑是RS485初始化有问题,可是,真心不知道怎么改了,但求M0高手指导一下!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-23 12:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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