×
搜索
每日签到
|
APP下载
|
登录
首页
研发技术
技术分类
嵌入式
模拟电子
电磁兼容
单片机
电池
电源
RF射频
传感器
显示-光电
FPGA/DSP
接口总线驱动
全部
前沿技术
高通5G手机芯片性能测评
高频小信号谐振放大电路时域与频域对比分析
高薪IC设计工程师是如何炼成的?
龙芯发布四款芯片:加速产业布局 中国芯大有可为
为什么我们要用隔离式放大器
热门技术文章
液晶显示器控制设计_含源程序代码
飞思卡尔数字压力传感器实现硬盘驱动存储容量增加
骁龙710为全新层级的智能手机提供用户所需的的顶级特性
解读西部电子设计行业四大亮点
节点转换成本升级,摩尔定律将在2014年被打破?
适用于WLAN IEEE80211a标准的双模前置分频器设计
行业应用
行业应用
医疗电子
物联网
智能电网
汽车电子
工业控制
AI
家电数码
热门应用
物联网网关是智能家居发展的重要支撑
齐聚澳门 ViewSonic优派助阵MDL Macau Dota 2 国际精英邀请赛
龙芯、飞腾、申威进入国企采购目录 但不应过度解读
绝缘电阻极化指数测量方法
阿特斯阳光电力加入 Intertek ‘卫星计划’
最新应用文章
区块链本体跨链技术设计方案解析
机器人技术电路设计图集锦
智能手环怎么用_智能手环使用教程
以IoT联接智能家居和楼宇
工业机器人控制系统由什么组成
绝缘电阻测试仪及兆欧表的组成和选用标准
电子论坛
社区导航
更多>
硬件设计讨论
电磁兼容&安规论坛
射频RF|微波技术
电源技术论坛
信号完整性SI/PI仿真
芯片SIP|封装设计
单片机|MCU论坛
ARM|DSP嵌入式论坛
物联网技术
FPGA|CPLD论坛
MATLAB论坛
器件选型&认证
Cadence Allegro论坛
Allegro Skill开发
Orcad|Concept论坛
Mentor Xpedition论坛
PADS PCB论坛
Altium Protel论坛
PCB封装库论坛
EDA365作品展
PCB生产工艺论坛
电子装联PCBA工艺&设备论坛
IPD流程管理
失效分析&可靠性
元器件国产化论坛
EDA365线下活动区
职业生涯
EDA365原创吧
电巢学堂
电巢直播
研发资源
电子百科
器件手册
设计外包
EDA365 Skill
EDA365 Tools
Xilinx开发者社区
电巢
单片机
>
单片机程序设计
>
详情
982212
最简单的S3c2440UART功能测试
发布时间:
2020-08-26
发布时间:
|
标签:
功能测试
程序
uart
S3C2440
/*******************************************
* 文件名称:UART.c
* 实现功能:最基本的UART发送与接收
* 作者:无jianqi
* 版本:1.0
**********************************************/
#include"2440addr.h" //包含2440相关寄存器的设置
#include"def.h"
//四个LED对应GPB5.6.7.8。
#define LED1 5
#define LED2 6
#define LED3 7
#define LED4 8
#define BAUD 115200 //波特率
#define Bit(x) (1<
#define Output(x) (1<<2*x) //将对应IO置为输出
#define LED_On(x) rGPBDAT=~Bit(x) //点亮相应LED
/*******************************************
* 名称:Clk_Set
* 功能:关于系统时钟的初始化
* 入口参数:无
* 出口参数:无
**********************************************/
void Clk_Set(void)
{
int count;
rUPLLCON=(56<<12)|(2<<4)|2; //UCLK为48MHZ
for(count=0;count<10;count++)
{
;
}
rMPLLCON=(92<<12)|(1<<4)|1; //FCLK为400MHZ
rCLKDIVN=(0<<3)|(2<<1)|1; //HCLK位100MHZ,PCLK为50MHZ
rCAMDIVN=(0<<9); //PCLK=HCLK/4
}
/*******************************************
* 名称:IO_init
* 功能:关于LED的端口初始化
* 入口参数:无
* 出口参数:无
**********************************************/
void IO_init(void)
{
rGPBCON=Output(LED1)|Output(LED2)|Output(LED3)|Output(LED4); //LED的IO口置为输出
rGPBDAT=0xffff; //LED全部熄灭
}
/*******************************************
* 名称:UART0_init
* 功能:UART0相关的初始化工作
* 入口参数:无
* 出口参数:无
**********************************************/
void UART0_init(void)
{
rGPHCON=0xa0; //IO口使能UART0功能
rGPHUP=0xff; //上拉禁止
rULCON0=0x03; // 8位数据,无校验,1位停止位
rUCON0=0x05; //pclk时钟,中断请求方式为Tx-电平,Rx-脉冲
rUBRDIV0=26; //设置波特率
rUFCON0=0x00; //不使用FIFO
rUMCON0=0x00; //不使用流控
}
/*******************************************
* 名称:Send_Byte
* 功能:发送一个字符
* 入口参数:等待发送的字符
* 出口参数:无
**********************************************/
void Send_Byte(char data)
{
while(!(rUTRSTAT0&0x2)); //等待发送缓冲器空
rUTXH0=data;
}
/*******************************************
* 名称:Send_String
* 功能:发送字符串
* 入口参数:等待发送的字符串
* 出口参数:无
**********************************************/
void Send_String(char* pt)
{
while(*pt)
{
Send_Byte(*pt++);
}
}
/*******************************************
* 名称:Uart_Getch
* 功能:接收一个字符
* 入口参数:无
* 出口参数:接收的字符
**********************************************/
char Uart_Getch(void)
{
while(!(rUTRSTAT0&0x1)); //等待接收缓冲器有数据
return (rURXH0); //读出数据
}
/*******************************************
* 名称:Main
* 功能:测试UART发送和接收函数
* 入口参数:无
* 出口参数:无
**********************************************/
void Main(void)
{
char temp;
IO_init();
UART0_init();
Clk_Set();
Send_String("HelloWorld"); //发送字符串
while(1)
{
temp=Uart_Getch(); //接收到字符
if(temp==0x01)
{
LED_On(LED1);
}
}
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』
分享至
发布时间:
2020-08-26
发布时间:
上一篇:最简单的方式 创建STM32的工程(使用标准库)-1
下一篇:最简单的51延时
相关推荐
热门文章
更多
TQ210天嵌开发板S5PV210 LED闪烁程序C语言代码记录
STM32----C语言数据类型…
在编程过程中.不同的CPU.其数据类型的意义各不相同.所以一定要注意相应变量数据类型的定义和转换.否则在计算中可能会出现不确定的错误.(一)C语言中的种类数据整型:int short long实型:float doubleSTM32中…
一种软件去除键抖动的方法…
简介:单片机控制系统中大多使用控制键来实现控制功能.消除按键瞬间的抖动是设计者必须要考虑的问题.本文介绍一种很实用的软件去抖动方法.它借助于单片机内的定时中断资源.只要运算一下逻辑表达就完成了去抖动.…
8051读引脚和读端口的区别…
8051的P0,1,2,3口作为输出时候.差别不大.仅仅是P0口需要外接上拉电阻.大约10K就可以了;但8051作为输入时基本相同.分为读端口和读引脚两种情况.先介绍读端口情况.实际上是读锁存器的状态.有时候需要读锁存器的…
单片机制作超级流水灯…
实验源程序:#include#includeunsigned int a,b;unsigned char d;sbit LED1 = P1^0;sbit LED2 = P1^1;sbit LED3 = P1^2;sbit LED4 = P1^3;sbit LED5 = P1^4;sbit LED6 = P1^5;sbit LED7 = P1^6;sbit LED8 = …
单片机数字循环显示c程序…
#include sbit p10=P1^0; main() {unsigned char s[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; unsigned char k,i=1; unsigned char j; …
24c08 I2C总线协议操作程序汇编和C语言2个版本详解…
;24c08操作时序为:起始信号sclk拉高情况下sda由高变低.表示起始; 结束信号sclk拉高情况下sda由低变高.表示结束; 字节由高位向低位依次发送; 第一个字节是地址和读写控制.第二个是存储地址.第三个是数据.每个数…
用PIC16F627制作的可调倒计时提醒器…
本可调倒计时提醒器具有:电路简洁.显示醒目.定时准确.制作容易.可调倒计0-99 分钟.使用方便的优点.它既有制作的趣味性.又有使用的实用性.一.硬件电路 如图1所示.电源变压器T1将AC220V市电变换为AC9V交…