📄 main.c
字号:
/*
描 述:COM0测试程序,参考原理图中“COM/Serial”部分
说 明:1. 测试程序接收来自串口的数据并反显给串口;
2. 串口设置:8位长度、无校验、1位停止位、波特率为38400
3. 系统时钟48MHZ
记 录:1. changyj 创建工程 2007-8-29
*/
#include "../Startup/Board.h"
// 波特率
#define USART_BAUD_RATE 38400
void UsartInitlize(); // 串口初始化
void UsartTest(); // 串口COM0测试程序
void Delay(unsigned long lDelayNum); // 延时函数(需改善)
int main()
{
UsartInitlize();
UsartTest();
return 0;
}
void Delay(unsigned long lDelayNum)
{
while(--lDelayNum!=0);
}
void UsartInitlize()
{
// 配置PIO控制器,定义RXD,TXD引脚
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, AT91C_PA5_RXD0|AT91C_PA6_TXD0, 0);
// 允许US0(COM0)时钟频率
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1<<AT91C_ID_US0) ;
// 配置COM0为:异步正常模式、MCK时钟、8位长度、无校验、1位停止位、波特率为38400
AT91F_US_Configure (AT91C_BASE_US0, MCK,AT91C_US_ASYNC_MODE,USART_BAUD_RATE , 0);
// 使能TX,RX
AT91F_US_EnableTx(AT91C_BASE_US0);
AT91F_US_EnableRx(AT91C_BASE_US0);
}
void UsartTest()
{
int i;
for( i=0; i<100; i++)
{
// 循环等待接收数据
while(!AT91F_US_RxReady(AT91C_BASE_US0));
// 从COM0接收数据,并重新发送给COM0
*AT91C_US0_THR = AT91F_US_GetChar(AT91C_BASE_US0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -