1. UART
1.1 定义
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种用于串行通信的硬件设备或模块。它的主要功能是将数据在串行和并行格式之间进行转换。UART通常用于计算机与外围设备或嵌入式系统之间的数据传输。
1.2 特点
-
异步通信:UART不需要发送和接收设备之间的时钟信号同步,数据传输速率和传输格式(如起始位、数据位、校验位、停止位)在通信双方事先协商好。
-
全双工通信:UART可以同时进行数据的发送和接收。
-
串行数据传输:数据一位一位地传输,减少了连线数量,但需要更多的时间来传输数据。
-
组成部分:
- 发送器(Transmitter):将并行数据转换为串行数据并发送出去。
- 接收器(Receiver):接收串行数据并将其转换为并行数据。
1.3 代码
#include <s3c2440.h>
#include <string.h>
#include <stdio.h>
#include "led.h"
#include "key.h"
#include "interrupt.h"
#include "delay.h"
#include "pwm.h"
#define ADDRESS 0X08
void init_wdt(void) //初始化看门狗,禁止启动,关闭看门狗
{
WTCON &= ~(1 << 0);
}
void init_clk(void)
{
unsigned int t = MPLLCON; //将PCLK频率存入变量设置好再进行修改,防止频率修改中途器件因为频率过高而短路
t &= ~((0xff << 12) | (0x3f << 4) | (3 << 0)); //利用锁相环将12MHz倍频
t |= ((127 << 12) | (2 << 4) | (1 << 0)); //配置fclk频率大约为400Mhz
CLKDIVN |= ((2 << 1) | (1 << 0));//分频,配置HCLK为100MHz,HCLK为50MHz
MPLLCON = t;//将所有频率配置好再进行设置,防止器件被烧坏
}
unsigned char buffer[128];//存储pc给s3c2440发送,s3c2440接收到的字符串
unsigned char tmpbuffer[128];
unsigned int pos;//已经收到字符的个数,下一个要收到字符的位置
vo