第一步设置系统时钟频率为32Mhz:
CLKCONCMD&=~0x40;//设置系统时钟源为32Mhz
while(CLKCONSTA&0x40);//等待晶振稳定
CLKCONCMD&=~0x47;//设置系统主时钟频率为32Mhz,这里是把时钟速度CLKSPD设置为32Mhz
具体配置参数如下:
设置好时钟频率之后我们就来到配置串口了:
1.首先配置外设控制
PERCFG=0x00;//配置外设控制寄存器,使用位置1
配置表格如下:
2.配置功能选择
P0SEL=0x0C;//P0_2,P0_3用做串口
3.配置串口状态与模式
U0CSR|=0x80;//1000 0000,UART异步模式
4.配置波特率及清空标志位根据下面表格去配置对应的波特率
U0BAUD|=59;
U0GCR|=8;//9600;
UTX0IF=0;//发送标志位清零
5.然后编写发送函数
void UartTX_Send_String(char *data,int len)//发送字符,和长度
{
int j;
for(j=0;j<len;j++)
{
U0DBUF=*data++;//发送数据
while(UTX0IF==0);//发送完毕则为1
UTX0IF=0;
}
}
6.主函数
char Txdata[];
void main()
{
Uart_Init();
strcpy(Txdata,"hello");//C语言字符串复制
while(1)
{
UartTX_Send_String(Txdata,sizeof("hello"));//sizeof 判断字符串长度
Delay500ms();
}
}
这样就完成啦,打开串口助手就可以查看了;
接下来附上完整代码
#include "iocc2530.h"
#include "String.h"
void Uart_Init()
{
CLKCONCMD&=~0x40;//设置系统时钟源为32Mhz
while(CLKCONSTA&0x40);//等待晶振稳定
CLKCONCMD&=~0x47;//设置系统主时钟频率为32Mhz
PERCFG=0x00;//配置外设控制寄存器,使用位置1
P0SEL=0x3C;
U0CSR|=0x80;
U0BAUD|=59;
U0GCR|=8;//9600;
UTX0IF=0;//发送标志位清零
}
void UartTX_Send_String(char *data,int len)//发送字符,和长度
{
int j;
for(j=0;j<len;j++)
{
U0DBUF=*data++;//发送数据
while(UTX0IF==0);//发送完毕则为1
UTX0IF=0;
}
}
void Delay500ms() //@12.000MHz
{
unsigned char i, j, k;
i = 23;
j = 205;
k = 120;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
char Txdata[];
void main()
{
Uart_Init();
strcpy(Txdata,"hello");//C语言字符串复制
while(1)
{
UartTX_Send_String(Txdata,sizeof("hello"));//sizeof 判断字符串长度
Delay500ms();
}
}