首页 > 其他分享 >Exynos4412 Uart Controller

Exynos4412 Uart Controller

时间:2024-03-17 16:11:34浏览次数:31  
标签:Uart 模式 发送 uart Controller Exynos4412 设置 寄存器 bit

参考视频:https://www.bilibili.com/video/BV14o4y1Y7A1?p=4&vd_source=432ba293ecfc949a4174ab91ccc526d6   寄存器描述来自Exynos 4412 User's Manual 0 uart寄存器需要关注的点有: 1、如何设置帧格式? 2、如何设置uart接收和发送模式? 3、如何设置uart的波特率? 4、发送和接收都是哪些寄存器,如何查看是否发送完毕?   设置帧格式寄存器如下: 0 ULCONn寄存器: bit[1:0]设置数据宽度,这里设置为b'11,表示8bits数据位 bit[2]设置停止位,这里设置为b'0,表示1bit停止位 bit[5:3]设置奇偶校验类型,不设置奇偶校验,就设置为0x0 bit[6]选择正常模式或红外模式,这里选择正常模式 则该寄存器设置为0x000111   设置uart接收和发送模式: 0 UCONn寄存器: bit[1:0]设置接收模式,这里设置为0x01,表示轮询模式 bit[3:2]设置发送模式,这里设置为0x01,表示轮询模式   设置波特率: 0 0 UBRDIVn和UFRACVALn两个寄存器共同决定波特率大小,上图也有计算方法说明,计算如下: wclk为100M,则DIV_VAL= 100000000/(112500 x 16) - 1 = 53.25 0.25 x 16 = 4 则:UBRDIVn设置为53,UFRACVALn设置为4   发送寄存器和接受寄存器: 0   状态寄存器UTRSTATn: 0 UTRSTATn寄存器: bit[0]表示接受数据buffer是否已准备好 bit[1]表示发送数据buffer是否为空   示例代码:

 1 #include "exynos_4412.h"
 2 
 3 
 4 /*串口控制器号初始化*/
 5 void UART_Init(void)
 6 {
 7     /*1.将GPA1_0和GPA1_1设置成UART2的接收和发送引脚 GPA1CON[7:0],设置引脚功能*/
 8     GPA1.CON = GPA1.CON & (~(0xFF << 0)) | (0x22 << 0);
 9 
10     /*2.设置UART2的帧格式 8位数据位 1位停止位 无校验 正常模式 ULCON2[6:0]*/
11     UART2.ULCON2 = UART2.ULCON2 & (~(0x7F << 0)) | (0x3 << 0);
12 
13     /*3.设置UART2的接收和发送模式为轮询模式 UCON2[3:0]*/
14     UART2.UCON2 = UART2.UCON2 & (~(0xF << 0)) | (0x5 << 0);
15 
16     /*4.设置UART2的波特率为115200 UBRDIV2/UFRACVAL2*/
17     UART2.UBRDIV2 = 53;
18     UART2.UFRACVAL2 = 4;
19 }
20 
21 /*对外发送一个字节数据*/
22 void UART_Send_Byte(char Dat)
23 {
24     /*等待发送寄存器为空,即上一个数据已经发送完成 UTRSTAT2[1]*/
25     while(!(UART2.UTRSTAT2 & (1 << 1)));
26 
27     /*将要发送的数据写入发送寄存器 UTXH2*/
28     UART2.UTXH2 = Dat;
29 }
30 
31 /*接受外部发来的数据*/
32 char UART_Rec_Byte(void)
33 {
34     char Dat = 0;
35 
36     /*判断接收寄存器是否接收到了数据 UTRSTAT2[0]*/
37     if(UART2.UTRSTAT2 & 1) { 
38 
39         /*从接收寄存器读取接收到的数据 URXH2*/
40         Dat = UART2.URXH2;
41         return Dat;
42 
43     } else {
44         return 0;
45     }
46 
47 }
48 
49 void UART_Send_Str(char *pstr) {
50     while(* pstr != '\0') {
51         UART_Send_Byte(*pstr++);
52     }
53 } 
54 
55 int main()
56 {
57     char RecDat = 0;
58 
59     UART_Init();
60 
61     while(1)
62     {
63         RecDat = UART_Rec_Byte();
64         if(RecDat == 0) {
65         }
66  else {
67             RecDat = RecDat + 1;
68             UART_Send_Byte(RecDat);
69         }
70 
71 
72         /*通过串口输出字符串*/
73         UART_Send_Str("Hello world!");
74 
75 
76 
77     }
78     return 0;
79 }

标签:Uart,模式,发送,uart,Controller,Exynos4412,设置,寄存器,bit
From: https://www.cnblogs.com/lethe1203/p/18078695

相关文章

  • UART协议
    参考博客:https://blog.csdn.net/weixin_49259827/article/details/133761740 Uart:UniversalAsyncchronousReceiverTransmitter即通信异步收发器,是一种通用的串行、异步通信总线。该总线有两条数据线,可以实现全双工的发送和接收,在嵌入式系统中常用于主机与设备之前的通信波......
  • @RestController
    @RestController是SpringFramework中的一个注解,主要用于标识一个类是RESTful服务的控制器(Controller)。在SpringMVC中,通常使用@Controller注解来定义控制器类,而@RestController是@Controller的一个特殊版本,它结合了@Controller和@ResponseBody注解的功能。具体......
  • RestController:Spring Framework 中用于创建 RESTful Web 服务的注解
    RestController 是SpringFramework中用于创建RESTfulWeb服务的注解。它简化了构建RESTfulWeb服务的过程,使得开发者能够更专注于业务逻辑的实现,而不是底层的HTTP请求和响应处理。一、RestController的基本概念RestController 是SpringWeb模块中的一个核心注......
  • MFMailComposeViewController 发送邮件
    通过MFMailComposeViewController发送邮件,需预先登录邮箱账号的情况下;具体实现与配置参数请参考如下:首先,引入MFMailComposeViewController库#import<MessageUI/MessageUI.h>其次,实现相关api方法if([MFMailComposeViewControllercanSendMail]){......
  • Javaweb项目使用本地servlet启动,可以弹出主页,跳转到controller报404解决方案
    首先检查项目的资源路径,以及tomcat配置,有没有部署,上下文配置好如果问题依然出现,那么可以考虑tomcat版本与依赖不匹配,我用的是tomcat10,使用使用这个依赖,就解决了这个问题,jakarta.servletjakarta.servlet-api5.0.0provided,相应的匹配版本可以查询到。......
  • 【Unity】Transform、Rigidbody、CharacterController移动
    前言在使用Unity开发的时候,移动是最最基础的一个需求,我来给大家简单的讲一下Unity中的几种常见的移动方法。1.Transform移动Transform移动就是修改物体的position①修改位置这里要注意:坐标分为世界坐标和本地坐标//将物体的世界坐标修改为(1,1,1)transform.posit......
  • IIC SPI UART RS232 RS485的差异简介
    UART串口通信:异步通信,两根线(RXDTXD)交叉连接进行点对点的通信,通信双方要设置好相同的波特率(其实不用完全一样也可以只要相差不大,毕竟是通信双方不是同一时钟),发送数据一般是发送8位,有起始位、数据、检验、停止位。串口通信的抗干扰能力差,通信距离短。RS232协议:编程还是按串......
  • SpringBoot Controller接收参数的常用方式总结
    原生的HttpServletRequest可和其他注解配合使用,是内置对象,是整个请求可获取到所有的数据请求路径参数@PathVariable请求路径参数例如url/{id},则获取id参数。@PathVariabel(name="xx")@RequestParam例如url?name=xxx。@RequestParam(name="xx")Body参数@Req......
  • Kubernetes: kube-controller-manager 源码分析
    0.前言在Kubernetes架构中,controllermanager是一个永不休止的控制回路组件,其负责控制集群资源的状态。通过监控kube-apiserver的资源状态,比较当前资源状态和期望状态,如果不一致,更新kube-apiserver的资源状态以保持当前资源状态和期望状态一致。1.kube-controller-ma......
  • Kubernetes Replica Sets 和 Kubernetes Replica Controller的区别
    ReplicaSet(RS)是ReplicationController(RC)的升级版本。ReplicaSet和 ReplicationController之间的唯一区别是对选择器的支持。ReplicaSet支持labelsuserguide中描述的set-based选择器要求, 而ReplicationController仅支持equality-based的选择器要求。标签选择器用来选择包......