21,597
社区成员
发帖
与我相关
我的任务
分享
#include <board.h>
#include <pio/pio.h>
#include <aic/aic.h>
#include <usart/usart.h>
#include <pmc/pmc.h>
const Pin PINS[]={PINS_USART2};
/// delay in MS (SDRAM)
static void DelayMS (unsigned long dly)
{
unsigned long i;
for ( ; dly>0; dly--)
for (i=0; i< 4000; i++);
}
/// USART 接收中断服务程序
void ISR_USART2(void)
{
unsigned short data;
data = USART_Read(AT91C_BASE_US2, 0);
USART_Write(AT91C_BASE_US2, data, 0); //将接收到的字符立即发送出去
}
/*
void ConfigureUsart2(void)
{
PMC_EnablePeripheral(AT91C_ID_US2); //使能串口时钟
/// 配置串口,8位异步模式,无校验,波特率115200
USART_Configure(AT91C_BASE_US2, USART_MODE_ASYNCHRONOUS, 115200, BOARD_MCK);
USART_SetTransmitterEnabled(AT91C_BASE_US2,1); // 使能串口发送
USART_SetReceiverEnabled(AT91C_BASE_US2,1); // 使能串口接收
/// 配置串口中断,内部高电平触发,中断服务子程序为ISR_USART2
AIC_ConfigureIT(AT91C_ID_US2, AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, ISR_USART2);
AIC_EnableIT(AT91C_ID_US2);
AT91C_BASE_US2->US_IER=AT91C_US_RXRDY; //串口接收中断使能
} */
//------------------------------------------------------------------------------
/// main function
//------------------------------------------------------------------------------
int main (void)
{
PIO_Configure(PINS, PIO_LISTSIZE(PINS));
PMC_EnablePeripheral(AT91C_ID_US2); //使能串口时钟
/// 配置串口,8位异步模式,无校验,波特率115200
USART_Configure(AT91C_BASE_US2, USART_MODE_ASYNCHRONOUS, 115200, BOARD_MCK);
USART_SetTransmitterEnabled(AT91C_BASE_US2,1); // 使能串口发送
USART_SetReceiverEnabled(AT91C_BASE_US2,1); // 使能串口接收
/// 配置串口中断,内部高电平触发,中断服务子程序为ISR_USART2
AIC_ConfigureIT(AT91C_ID_US2, AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, ISR_USART2);
AIC_EnableIT(AT91C_ID_US2);
AT91C_BASE_US2->US_IER=AT91C_US_RXRDY; //串口接收中断使能
// ConfigureUsart2();
while(1)
{
// USART_Write(AT91C_BASE_US2,'T',0);
// DelayMS(500);
}
}