S3C2440串口通信基本功能的代码

发布时间:2024-07-18  

功能:将通过串口接收到的内容再发送出去,在PC机上看到的现象就是在串口通信软件中输入什么就会实时地显示什么。


主文件:serial.c


 1 //最常用的寄存器是ULCON、UCON、UBRDIV、UTRSTAT、UTXH、URXH这六个寄存器

 2 #define ULCON0         (*(volatile unsigned *)0X50000000)     //UART线控制寄存器

 3 #define UCON0          (*(volatile unsigned *)0X50000004)     //UART控制寄存器

 4 #define UFCON0         (*(volatile unsigned *)0X50000008)     //FIFO控制寄存器

 5 #define UTRSTAT0     (*(volatile unsigned *)0X50000010)     //UART状态寄存器

 6 #define UBRDIV0     (*(volatile unsigned *)0X50000028)    //波特率

 7 #define UTXH0          (*(volatile unsigned *)0X50000020)

 8 #define URXH0          (*(volatile unsigned *)0X50000024)

 9 //还有UMCON、UERSTAT、UFSTAT、UMSTAT这四个寄存器,有需要的话再设置不迟

10 

11 #define GPBDAT         (*(volatile unsigned *)0X58000054)

12 

13 int TSmain()

14 {

15     char buf;

16     

17     ULCON0 &=0XFFFFFF00;     //不使用红外模式,使用正常模式+无校验位+1位停止位

18     ULCON0 |=0X03;           //8位数据位

19     

20     UCON0  =0X0805;          //串口时钟PCLK,发送与接收的中断类型均为pulse,禁止接收超时中断,禁止接收错误中断,不使用loopback模式,使用正常模式,查询方式

21                              //不发送break signal,发送模式与接收模式均为中断响应或轮询模式

22     

23     //UFCON的默认值是关闭FIFO,所以如果不用的话可以直接不设置即可

24     

25     //UBRDIV如何设定?UBRDIV=(int)(用户通过UCON设定的UART时钟/(用户想要的波特率*16))-1

26     UBRDIV0 =0X1A;           //波特率115200

27     

28     while(1)

29     {  

30         //UTRSTAT寄存器既有表示接收缓冲区状态的bit,也有表示发送缓冲区状态的bit。

31         if(UTRSTAT0 & 0X01)  //UTRSTAT的[0]位用于表示接收缓冲区是否就绪,=0表示缓冲区为空,可以接收了,=1表示缓冲区内有数据,暂时不能接收。

32         {

33             buf=URXH0;       //URXH为接收缓冲区寄存器,缓冲区共8bit=2Byte,

34             while(!(UTRSTAT0 & 0X04));//UTRSTAT[3]=1时表示发送缓冲区与发送移位寄存器都为空,可以放入数据进行发送,=0时表示暂时不为空,不能放入数据。

35             UTXH0=buf;//将接收到的数据再发送出去

36             

37         } 

38     }

39     return 0;

40 }


上电后运行的初始汇编代码init.s:


    AREA |DATA|,CODE,READONLY

    ENTRY

    ldr r13,=0x1000

    IMPORT TSmain

    b TSmain

    END


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>