2374|6

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

菜鸟求助,一段串口小程序困了我好几天了 [复制链接]

我用的芯片是at91sam7x256,写了一段串口往上位机发送的小程序,但怎么调也是不通,初步估计是在初始化的时候没弄好,但是找不出问题在哪?


#include "/include/at91sam7S64/at91sam7s64.h"
#include "/include/at91sam7s64/lib_at91sam7s64.h"


void AT91F_LowLevelInit(void);
void usart0_init(void);
void usart0_write(char * tx_buffer, unsigned int tx_counter);

#define        MCLK        48000000
#define        BAUD        19200

int CMain(void)
{
        int index = 500000;
        AT91F_LowLevelInit();

        usart0_init();
        while(1)
        {
                usart0_write("Hello, World!\n", 14);
                while(index--);
                index = 500000;
        }
       
        return 0;
}

void AT91F_LowLevelInit(void)
{
        //Disables the Watchdog Timer
        AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;
       
        //Enabling the Main Oscillator
        AT91C_BASE_PMC->PMC_MOR = 0x01 | 0x07 << 8;
        while (!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS))
       
        //Setting PLL and divider
        AT91C_BASE_PMC->PMC_PLLR = 24 | (0x28 << 8) | (124 << 16) | AT91C_CKGR_USBDIV_1;
        while (!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK));
        while (!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY));
       
        //Selection of Processor Clock
        AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
        while (!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY));
       
        //Selection of Master Clock
        AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK;
        while (!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY));
       
}

void usart0_init(void)
{
        //AT91C_BASE_PMC->PMC_PCER=1<        
        AT91F_US0_CfgPMC();
        AT91F_US0_CfgPIO();
       
        AT91F_US_Configure(
                AT91C_BASE_US0,
                MCLK,
                AT91C_US_ASYNC_MODE,
                BAUD,
                0);
        AT91C_BASE_US0->US_CR = AT91C_US_RXEN | AT91C_US_TXEN | AT91C_US_STTTO;

}


void usart0_write(char * tx_buffer, unsigned int tx_counter)
{
        //while( (AT91C_BASE_US0->US_CSR & AT91C_US_TXRDY) == false );
        AT91C_BASE_PDC_US0->PDC_TPR = (unsigned int)tx_buffer;
        AT91C_BASE_PDC_US0->PDC_TCR = tx_counter;
        AT91F_PDC_EnableTx (AT91C_BASE_PDC_US0);
        //while (AT91C_BASE_PDC_US0->PDC_TCR & 0xFFFF);
}

最新回复

那个 你的头文件 貌似是S64啊  详情 回复 发表于 2009-9-3 20:15
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 






http://blog.eeworld.net/brucegong/archive/2008/10/18/3097416.aspx
就知道这种事情每个人都会玩一次的







 
 

回复

93

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我刚开始学,什么也不会,楼上给的我看不懂,能不能详细讲讲啊。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

4
 
什么现象呢
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
我也是新手
不清楚ie;
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
没用过这个单片机啊,不好意思了
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
那个 你的头文件 貌似是S64啊
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表