搜索
bottom↓
回复: 11

xMega UART BaudRate 不會設定

[复制链接]

出0入0汤圆

发表于 2010-4-22 10:41:38 | 显示全部楼层 |阅读模式
各位大哥能不能幫我看看錯在哪裡:
晶振8M , Baudrate 9600, baudrate一直調不出來
void Config_OSC_ExternalXTAL(void)
{
//XOSCCTRL
//振盪頻率選擇2~9M : OSC_FRQRANGE_2TO9_gc
//振盪源選擇外部0~16M XTAL , Restart CLK設為16K CLK :  OSC_XOSCSEL_XTAL_16KCLK_gc
        OSC.XOSCCTRL = (uint8_t)( OSC_FRQRANGE_2TO9_gc | OSC_XOSCSEL_XTAL_16KCLK_gc ) ;
//外部振盪器致能
        OSC.CTRL = OSC_XOSCEN_bm ;
//等待振盪穩定;
        do {} while ( (OSC.STATUS & OSC_XOSCRDY_bm ) == 0 );
//設定分頻
//        uint8_t PSconfig = (uint8_t) ( CLK_PSADIV_1_gc | CLK_PSBCDIV_1_2_gc );
//        CCPWrite( &CLK.PSCTRL, PSconfig );
//Clock來源選擇
        uint8_t clkCtrl = ( CLK.CTRL & ~CLK_SCLKSEL_gm ) | CLK_SCLKSEL_XOSC_gc;
        CCPWrite( &CLK.CTRL, clkCtrl );

}
void USART_INIT(void)
{
        char cCtrlC = 0;
        unsigned int nBsel = 0 ;
        char cBscale = 0;


        PORTC.OUT |= PIN3_bm ;
        PORTC.DIRSET   = PIN3_bm;
        PORTC.DIRCLR   = PIN2_bm;


        cCtrlC = USART_CMODE_ASYNCHRONOUS_gc ;
        cCtrlC |= USART_CHSIZE_8BIT_gc ;
        cCtrlC |= USART_PMODE_DISABLED_gc ;
        cCtrlC &= ~USART_SBMODE_bm ;
        USARTC0.CTRLC = cCtrlC;

//baudrate setting

        USARTC0.BAUDCTRLA =51; //(unsigned char)nBsel;
        USARTC0.BAUDCTRLB =0; //(cBscale << USART_BSCALE0_bp) | (nBsel >> 8);
//Enable Transmite and Receive Interrupt
        USARTC0.CTRLA = USART_RXCINTLVL_HI_gc | USART_TXCINTLVL_HI_gc ;
//
        USARTC0.CTRLB &= ~USART_CLK2X_bm ;
        USARTC0.CTRLB |= USART_RXEN_bm ;         //Enable Receive ;
        USARTC0.CTRLB |= USART_TXEN_bm ;         //Enable Transmite;
           PMIC.CTRL = PMIC_HILVLEN_bm; // enable low level interrupts
        sei();
}

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-4-23 13:46:54 | 显示全部楼层
接收端收到都是亂碼 , 有沒有人可以告訴我到底為什麼 ?

出0入0汤圆

发表于 2010-4-23 21:37:19 | 显示全部楼层
如果有示波器,先检查一下波特率对不对。没有的话可以先把RXD和TXD短接,看看自发自收可不可以,能收到正确的数据就很可能是波特率设置的问题。要么就是系统时钟设置不正确,要么就是波特率设置时计算错误。一般可以参考应用笔记,先测试下用内部2M RC时钟是否正常。如果还不正常,可能就要找硬件的问题了。  建议LZ一点一点排除,可以先试着参考应用笔记上的例子,用2M RC先测试下。

出0入0汤圆

发表于 2010-4-23 21:38:01 | 显示全部楼层
- -!
签名档没有了...

出0入0汤圆

 楼主| 发表于 2010-4-23 23:13:17 | 显示全部楼层
謝謝shdzbsl ; 2M RC 已測過還是一樣 , Baudrate降到1200 , 也不行.Echo back Rx可以收到.

出0入0汤圆

 楼主| 发表于 2010-4-24 11:13:47 | 显示全部楼层
回复【3楼】shdzbsl
- -!
签名档没有了...
-----------------------------------------------------------------------

請問"签名档" ?

出0入0汤圆

 楼主| 发表于 2010-4-25 13:53:09 | 显示全部楼层
有沒有人用過xmega做產品 , USART可靠嗎 ? 因看上它有8個USART才試用 , 沒想到連Baudrate都調不準.

出0入0汤圆

发表于 2010-4-25 14:21:53 | 显示全部楼层
计算XMEGA波特率ourdev_549090.zip(文件大小:15K) (原文件名:ATxmega_Baud_Rate_Calculator_v1.0.xls.zip)

出0入0汤圆

 楼主| 发表于 2010-4-25 18:28:58 | 显示全部楼层
謝謝 lisn3188 龙南 ; 我就是以這個檔案設定的 , 不行 .

出0入0汤圆

 楼主| 发表于 2010-4-27 16:30:51 | 显示全部楼层
查到問題了,是電壓準位問題,謝謝shdzbsl提醒並向xMega致歉.

出0入0汤圆

发表于 2013-1-29 18:04:08 | 显示全部楼层
電壓準位,是什么意思?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-24 07:15

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

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