用C语音编程实现S3c2410的UART1的初始化。并写出串口收发数据的函数定义 要求字符帧格式为7位数据位、1位停止位、偶校验、波特率取9600、采用正常工作 模式、不使用中断、不使用送、不使用错误标志状态、发送和接收不采用FIFO模 式,中断响应,不使用自动流控制,时钟用UCLK取60MHZ。其余使用默认设置
时间: 2023-12-10 08:05:23 浏览: 80
UART1的初始化代码如下:
```c
#define UBRDIV_9600_60MHZ 195
void uart1_init(void)
{
// 设置时钟
rGPHCON &= ~0xf0;
rGPHCON |= 0xa0;
rGPHUP |= 0x30;
// 设置波特率
rUFCON1 = 0x00;
rUMCON1 = 0x00;
rULCON1 = 0x03;
rUCON1 = 0x05;
rUBRDIV1 = UBRDIV_9600_60MHZ;
}
```
串口收发数据的函数定义如下:
```c
char uart1_getc(void)
{
while (!(rUTRSTAT1 & 0x01));
return rURXH1;
}
void uart1_putc(char ch)
{
while (!(rUTRSTAT1 & 0x02));
rUTXH1 = ch;
}
void uart1_puts(char *str)
{
while (*str != '\0') {
uart1_putc(*str++);
}
}
```
其中`uart1_getc`函数用于接收一个字符,`uart1_putc`函数用于发送一个字符,`uart1_puts`函数用于发送一个字符串。需要注意的是,在发送和接收数据时需要先判断相应的寄存器状态,确保数据的正确性。