ARM裸机——FS2410串口通信(UART)
来源:互联网 发布:截屏软件 编辑:程序博客网 时间:2024/05/22 16:57
一、开发环境
(1)硬件平台:FS2410
(2)主机:Ubuntu 10.10
二、FS2410串口的原理图
三、串口UART寄存器配置
(1)配置TXD0与RXD0(GPH2、GPH3)
(2)设置波特率(UBRDIVn)
(3)设置传输格式(ULCONn)
(4)选择时钟源与中断方式(UCONn)
(5)设置FIFO和流控(UFCONn 、UMCONn)
(6)接收字符和发送字符(UTRSTATn)
四、详细设计
uart.c:
#include "s3c2410.h"void putc(char ch) //发送字符{while(!(UTRSTAT0 & 0x2) ); //判断发送缓冲区是否为空 UTXH0 = ch; //发送字符}char getc(void) //接收字符{while(!(UTRSTAT0 & 0x1)); //判断接收缓冲区是否为空return URXH0; //返回接收的字符}void putstr(char *str) //发送字符串{while(*str != '\0'){if(*str == '\n'){putc('\n');putc('\r');}elseputc(*str);str++;}}int main(void){char ch;char str[100];int i = 0, j;for(j = 0; j < 100; j++) //清空字符串str[j] = '\0';GPHCON = GPHCON & ~(0xf << 4) | (0xa << 4); //配置RXD0、TXD0GPHUP = 0x0c; //设置上拉电阻UFCON0 = 0; //不用FIFOUMCON0 = 0; //不用流控ULCON0 = 0x3; //8位数据,1个停止位,无校验,正常模式UCON0 = 0x5; //时钟源位PCLK, 中断方式为查询UBRDIV0 = ((int)(50000000 / 115200 / 16) - 1); //设置波特率为115200putc('\r');putstr("hello fs2410\n");while(1){ch = getc(); //接收字符putc(ch); //发送字符str[i++] = ch;if(ch == '\r'){i = 0;putc('\n');putstr("fs2410:");putstr(str);putstr("\n");for(j = 0; j < 100; j++) //清空字符串str[j] = '\0';}}return 0;}
start.S:
.text.global _start_start:#define WATCHDOG 0x53000000ldr r0, =WATCHDOGmov r1, #0str r1, [r0]ldr sp, =1024*4bl mainloop:b loop
Makefile:
uart.bin: start.S uart.carm-none-linux-gnueabi-gcc -c start.S -o start.oarm-none-linux-gnueabi-gcc -c uart.c -o uart.oarm-none-linux-gnueabi-ld -Ttext 0x30008000 start.o uart.o -o uartarm-none-linux-gnueabi-objcopy -O binary -S uart uart.binclean:rm -f *.o uart.bin
在开发板的uboot上输入以下命令:
tftp 30008000 uart.bin
go 30008000
- ARM裸机——FS2410串口通信(UART)
- 【ARM】串口通信·FS2410·裸机UART
- ARM裸机串口UART
- ARM裸机——FS2410 流水灯
- ARM裸机——FS2410看门狗
- ARM裸机——FS2410操作ADC
- mini2440裸机试炼之——DMA直接存取 实现Uart(串口)通信
- 嵌入式Linux裸机开发(七)——UART串口通信
- ARM裸机——FS2410定时器操作蜂鸣器
- ARM裸机实验 UART串口(S3C2440A) TQ2440
- ARM裸机——FS2410按键控制LED灯(查询方式)
- ARM裸机——FS2410按键控制LED(中断方式)
- ARM:UART串口异步通信驱动编程
- TQ210_裸机编程(三)——串口通信
- S3C2440 UART串口驱动(裸机)
- 裸机系列——2440串口通信
- 裸机系列——2440串口通信
- 裸机系列-UART串口
- Apache在本地配置多个虚拟主机站点
- floodfill()函数的应用
- jquery 实现可编辑DIV
- poj1088(动态规划经典)
- 1.自动关机软件1.0-自动开机时如何获得全路径
- ARM裸机——FS2410串口通信(UART)
- ubuntu10.04下virtualbox虚拟机使用u盘,网银
- 如何为嵌入式开发建立交叉编译环境
- LaTex文档的输入问题
- http://www.cnblogs.com/wujd/archive/2012/01/10/wujiandong-android-1.html
- 笔试题1--猫吃老鼠问题
- 关于在linux控制台按下ctrl+s后出现卡住现象的问题
- SQL 2008 Server 在Win7下的安装
- 开源软件更适合中国