裸奔程序之UART

      开发平台:ADS1.2

      实验实现功能:利用TQ2440开发板与PC机通过UART通信方式实现通信。

——————————————————————————————————————

#define GLOBAL_CLK 1
#include "def.h"
#include "2440addr.h"
#include "2440lib.h"

void CalcBusClk(void);
void Main()
{
       char string[256];

       rMPLLCON =(92<<12)|(1<<4)|1;  //设置FCLK为400M
 
      ChangeClockDivider(2,1);            //这个函数在2440lib.c中定义的,设置分频比为1:4:8
 
      CalcBusClk();                              //计算总线频率
 
      Uart_Select (0);                        //选择串口0
 
      Uart_Init (0,115200);              // 0代表使用当前的PCLK ,115200是波特率
 
      rGPHCON &=~((3<<4)|(3<<6));
      rGPHCON |=(2<<4)|(2<<6);      //把GPH3、GPH2设置为RXD[0] 、TXD[0] 功能

     Uart_Printf("\n This is an uart test,write by lwj\n"); //串口上打印

    while(1)
   {
           Uart_Printf("please,input string\n") ;    //这些函数都是在2440lib.c 中定义的
  
          Uart_GetString(string);                        //获取输入的字符
   
          Uart_Printf("you input string: %s\r\n",string);  //打印出输入的字符
   }            
}

void CalcBusClk(void)    //计算总线频率
{
       U32 val,UPLL;
       U8 m, p, s;
       val = rMPLLCON;
       m = (val >> 12) & 0xff;
       p = (val >> 4) & 0x3f;
       s = val & 3;

      FCLK = ((m+8)*(FIN/100)*2)/((p+2)*(1<<s))*100;

      val = rCLKDIVN;
      m = (val >> 1) & 3;
      p = val & 1;
      val = rCAMDIVN;
      s = val >> 8;

     switch (m)
    {
         case 0:  HCLK = FCLK;              break;
         case 1:  HCLK = FCLK >> 1;      break;
         case 2:
         if(s & 2)  HCLK = FCLK >&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值