2440裸机程序——串口收发数据

发布者:Qingliu2022最新更新时间:2022-01-26 来源: eefocus关键字:裸机程序  串口  收发数据 手机看文章 扫描二维码
随时随地手机看文章

工程当中需要添加 S3C2440A.s ;2440lib.c;main.c;uart0.c 这四个程序。


主程序:


/*********************************************************************************************

* File name: main.c

* Author: ZXL 

* Description: 在PC机通过串口0向终端发送一行字符(以回车键结束),开发板接收串口数据后,保存在数组中,再传回到PC端,通过终端回显。

* History: 2013.5.8

*********************************************************************************************/


#include "def.h"

#include "option.h"

#include "2440addr.h"     

#include "2440lib.h"

   

void dely(U32 tt)

{undefined

   U32 i;

   for(;tt>0;tt--)

        for(i=0;i<10000;i++);

}



void init()

{undefined

U32 i;

U8 key;

U32 mpll_val=0;

    i = 2 ; 

switch ( i ) //设置2440的时钟频率

{undefined

case 0:  //200

key = 12;

mpll_val = (92<<12)|(4<<4)|(1);

break;

case 1:  //300

key = 13;

mpll_val = (67<<12)|(1<<4)|(1);

break;

case 2:  //400

key = 14;

mpll_val = (92<<12)|(1<<4)|(1);

break;

case 3:  //440!!!

key = 14;

mpll_val = (102<<12)|(1<<4)|(1);

break;

default:

key = 14;

mpll_val = (92<<12)|(1<<4)|(1);

break;

}

//MDIV=92,PDIV=1,SDIV=1 通过配置MPLLCON,MPLL确定,即FCLK=400MHZ确定

ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);

ChangeClockDivider(key, 12);   //FCLK:HCLK:PCLK = 1:1/4:1/8 =400M:100M:50M

    

Port_Init();

  

Uart_Init(0,115200);

    Uart_Select(0);   

Uart_Printf("n Uart0 Test!!!n"); 

}  

   

int main(int argc, char **argv)

{undefined

init();

    do

    {    

uart0();

}while(Uart_Getch() != ESC_KEY); //无限循环,直到用户键入ESC键,退出。

Uart_Printf("n Exit Uart0 Test!n");

}




串口程序:



/*********************************************************************************************

* File name: uart0.c

* Author: ZXL 

* Description: 在PC机通过串口0向终端发送一行字符(以回车键结束),开发板接收串口数据后,保存在数组中,再传回到PC端,通过终端回显。

* History: 2013.5.8

*********************************************************************************************/



#include "def.h"

#include "option.h"

#include "2440addr.h"     

#include "2440lib.h"



void uart0()

{undefined

U8 c,string_input[256];

U8 m=0;



Uart_Printf(" Please input words, then press Enter:n");

while(1)

{undefined

c=Uart_Getch(); //从终端接收一个字符

Uart_Printf("%c",c); //在终端显示用户输入的字符

if(c!='r')  string_input[m++]=c;   //将接收到的字符保存在一个数组里面

else

{undefined

string_input[m]=''; //收到回车符,表示字符输入结束,在字符串的末尾加上结束符

break;

}

}

dely(50);


Uart_Printf("n The words that you input are: n %sn",string_input); 

}


关键字:裸机程序  串口  收发数据 引用地址:2440裸机程序——串口收发数据

上一篇:2440裸机程序——触摸屏测试程序
下一篇:2440裸机程序——定时器控制LED灯闪烁

推荐阅读最新更新时间:2024-11-17 15:30

S3C2440裸机------LCD_抽象出重要结构体
1.lcd.h 我们在lcd.h里面定义一个结构体,用来表示LCD需要的参数。 #ifndef _LCD_H #define _LCD_H enum { NORMAL = 0, INVERT = 1, }; /* NORMAL : 正常极性 * INVERT : 反转极性 */ typedef struct pins_polarity { int vclk; /* normal: 在下降沿获取数据 */ int rgb; /* normal: 高电平表示1 */ int hsync; /* normal: 高脉冲 */ int vsync; /* normal: 高脉冲 */
[单片机]
上位机串口的通信编程
上位机串口通信主要介绍通信串口的初始化和串口缓冲区数据的读取,因为此处只是作为指令来读取,数据量小,所以缓冲区数据的读取为有数据接收便触发串口的数据接收事件。
[单片机]
上位机<font color='red'>串口</font>的通信编程
从零开始51单片机教程 —— 22 单片机串口介绍
串口是单片机与外界进行信息交换的工具。 8051单片机的通信方式有两种: 并行通信:数据的各位同时发送或接收。 串行通信:数据一位一位次序发送或接收。参看下图: 串行通信的方式: 异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下: 在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。用这种格式表示字符,则字符能一个接一个地传送。 在异步通信中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式能由通信的双方自由制定,但从通用、方便的角度出
[单片机]
从零开始51单片机教程 —— 22 单片机<font color='red'>串口</font>介绍
mini2440裸机编程---网卡
我自己作的试验有问题没有解决: dm9000 发完之后,不产生中断,为什么?而且通过判断nsr,也读不到到发送完毕的标志。 另一个问题是:一旦启动发送,程序就会不断地产生recv的中断。这个问题经过写入isr寄存器得到解决。但依然不明白。 一、dm9000和ARM的连线。 DM9000可以直接与ISA总线相连,也可以与大多数CPU相连。在这里,我们当然是要让DM9000与s3c2440相连接了。dm9000与arm之间的连线主要有三部分: 1. 地址线,主要是AEN和CMD两根线。 DM9000对外来说只有两个端口——地址口和数据口,地址口用于输入内部寄存器的地址,而数据口则完成对某一寄存器的读写。DM90
[单片机]
msp432快速入门第十三节之串口通信
(一)MSP432串口介绍   MSP432P401R并没有专用的串口设备,要使用EUSC模块配置成UART模式,串口通信非常便捷易用,它在嵌入式设备中是最为常见的一种接口,在这里我们把MSP432的串口配置成8in1的模式,8位数据,1位停止位,没有流控选择,波特率为9600,发送方式是直接发送,接收方式是中断接收。 需要注意的是仅仅有EUSCA支持被配置成串口模式。 (二)配置串口   首先打开TI的串口回环(call back)例程,然后参照其进行配置,之后进行测试即可: (1)初始化串口 需要注意的是串口时钟选择了SMCLK,之前的例子中SMCLK已经被配置成12MHz,那么我们需要获取特定波特率的分频数等等,
[单片机]
msp432快速入门第十三节之<font color='red'>串口</font>通信
STM8 74hc164串口输出扩为并口输出子程序
软件设计 /********************************************************************* 目 的: 建立74hc164操作库 目标系统: 基于STM8单片机 应用软件: Cosmic CxSTM8 *********************************************************************/ #include stm8s207s8.h #define HC164_OUT_DATA sbi(PC_DDR,3);sbi(PC_CR1,3);sbi(PC_CR2,3); //PB6 数据口 #define HC16
[单片机]
UART0串口编程(二):硬件原理;轮训方式的串口编程
本节针对的是ARM2200环境下编写串口程序,其中设计轮循方式,中断方式,以及在UC/OS-II操作系统下的串口编程。使用轮循和中断两种方式来实现串口编程。用中断实现串口编程,系统的效率较高,但是难度也较大 ;轮循方式效率较低,但是编程比较简单。 一.串口编程的硬件原理 1. 串口特性: 1 16字节接收FIFO和16字节发送FIFO 2 接收FIFO触发点可设置为1,4,8或14字节。 3 内置波特率发生器。 2. UART0引脚: 1 RxD0 引脚用于UART0接受数据,接受方式为串行输入。 2 TxD0引脚用于UART0发送数据,发送方式为串行发送数据。 3. UART0的结
[单片机]
UART0<font color='red'>串口</font>编程(二):硬件原理;轮训方式的<font color='red'>串口</font>编程
S3C2440启动代码 中断分析
1.建立中断向量表 b ResetHandler;hereis the first instrument 0x00这是第一条执行的指令 b HandlerUndef ;handler for Undefined mode b HandlerSWI ;handler for SWI interrupt b HandlerPabort ;handler for PAbort b HandlerDabort ;handler for DAbort b . ;reserved b HandlerIRQ ;handler for IRQ interrupt
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved