进行串口驱动编写,主要参考源码中的console-config.c文件

以下是代码:

void beagle_console_init(void)
{
if(init_needed)
{
const uint32_t div = UART_CLOCK / 16 / CONSOLE_BAUD;
CONSOLE_SYSC = 2;
while ((CONSOLE_SYSS & 1) == 0)
;
if ((CONSOLE_LSR & (CONSOLE_LSR_THRE | CONSOLE_LSR_TEMT)) == CONSOLE_LSR_THRE)
{
CONSOLE_LCR = 0x83;
CONSOLE_DLL = div;
CONSOLE_DLM = (div >> 8) & 0xff;
CONSOLE_LCR = 0x03;
CONSOLE_ACR = 0x00;
}
while ((CONSOLE_LSR & CONSOLE_LSR_TEMT) == 0)
;
CONSOLE_LCR = 0x80 | 0x03;
CONSOLE_DLL = 0x00;
CONSOLE_DLM = 0x00;
CONSOLE_LCR = 0x03;
CONSOLE_MCR = 0x03;
CONSOLE_FCR = 0x07;
CONSOLE_LCR = 0x83;
CONSOLE_DLL = div;
CONSOLE_DLM = (div >> 8) & 0xff;
CONSOLE_LCR = 0x03;
CONSOLE_ACR = 0x00;
init_needed = 0;
}
}

以下是发送部分程序:

#include <stdio.h>
#include <stdlib.h>#include <bsp.h>
#define Control_Module_Registers1 (*(volatile uint32_t *)(0x44E10000+0x984))
#define UART1_THR    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x00))
#define UART1_RHR    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x00))
#define UART1_IER    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x04))
#define UART1_DLL    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x00))
#define UART1_DLM    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x04))
#define UART1_LCR    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x0c))
#define UART1_LSR    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x14))
#define UART1_MDR1    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x20))
#define UART1_SYSC    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x54))
#define UART1_SYSS    (*(volatile uint32_t *)(BEAGLE_BASE_UART_2+0x58))#define TX_FIFO_E (1<<5)
#define RX_FIFO_E (1<<0)发送函数:int uart_send_command(rtems_task_argument ignored)
{uint32_t div;Control_Module_Registers1 = 0x00;UART1_SYSC = 2;        // software resetwhile((UART1_SYSS & 1) == 0)    ;UART1_LCR = 0x83;div = UART_CLOCK / 16 / 115200;UART1_DLL = div;UART1_DLM = (div >> 8) & 0xff;UART1_LCR = 0x03;UART1_MDR1 = 0x00;char              c;while(1) {for(c = 'A'; c <= 'Z'; c++) {UART1_THR = c;rtems_task_wake_after(rtems_clock_get_ticks_per_second());}}return 0;
}

接收部分下次再聊。

rtems bbb板uart驱动编写相关推荐

  1. Zynq7020_PS端 uart驱动编写及Vivadio-SDK配置

    刚接触 zynq 网上资料也很少,整起来也比较难受.ps.pl 还有SDK.这些东西第一次用都得了解.如果你是个arm工程师,PL部分可以不用怎么了解,只要学习简单的新建硬件流就可以了.主要学习使用的 ...

  2. uart驱动框架及编程方法

    一.UART介绍 UART(Universal Asynchronous Receiver/Transmitter),中文全称为通用异步收发传输器,是一种异步收发传输器,它将要传输的数据通过并行到串行 ...

  3. 超详细Uart驱动框架及编程方法

    一.UART介绍 UART(Universal Asynchronous Receiver/Transmitter),中文全称为通用异步收发传输器,是一种异步收发传输器,它将要传输的数据通过并行到串行 ...

  4. UART驱动_linux

    目录 1.Linux下UART驱动框架 1)uart_driver注册与注销 2)uart_port的添加与移除 3)uart_ops实现 2.RS232驱动编写 1)UART3 IO节点创建 2)添 ...

  5. 龙芯智龙开发板:驱动步进电机实战入门

    本文面向初学者,请多各位高手包涵.我在此特别致谢勤为本先生为我提供的帮助. 步进电机 步进电机就是一种受脉冲控制的电机,步进电机接收到一系列某种调制顺序的脉冲,做出相应的反应,转到相应的角度或者相应的 ...

  6. linux UART驱动

    目录 一.UART驱动关键结构体 二.UART驱动分析 三.UART驱动编写 一.UART驱动关键结构体 1.uart_driver 结构体 (1) uart_driver 结构体表示 UART 驱动 ...

  7. Linux uart 驱动

    一.串口驱动框架简介 Linux 提供了串口驱动框架.串口驱动没有主机端和设备端之分,就只有一个串口驱动,而且这个驱动也是由处理器厂家编写好了. 我们真正要做的就是在设备树中添加所要使用的串口节点信息 ...

  8. 4412linux编写串口驱动,Tiny4412之串口(Uart)驱动编写

    一:tiny4412串口驱动编写 1.串口通信简介 串口通信指串口按位(bit)发送和接收字节,串口通信的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口 ...

  9. 设备树下的platform 驱动编写

    目录 设备树下的platform 驱动简介 硬件原理图分析 实验程序编写 修改设备树文件 platform 驱动程序编写 编写测试APP 运行测试 编译驱动程序和测试APP 运行测试 上一章我们详细的 ...

最新文章

  1. 二叉查找树(二叉排序树)的详细实现
  2. HPU 1002 A + B Problem II【大数】
  3. 5-去掉a标签下划线,禁止a标签的跳转
  4. StackedGAN详解与实现(采用tensorflow2.x实现)
  5. laravel学习笔记------Route::resource和Form-Model-Binding
  6. 日志解析LogParse启动参数配置
  7. 【网络流24题】餐巾计划问题(费用流)
  8. PyQt5环境搭建及cx_freeze打包exe
  9. 数字图像处理-绪论 (上)
  10. html 360 浏览器图片自适应,360浏览器看图模式 一键保存高清套图
  11. 深度学习:知识回收(神经网络模型:BPNN原理)
  12. 微信小程序实现退款,Java版。
  13. 理解计算机故障排除的基本顺序,开关常见五种故障实例解读
  14. doom3中PDA信息
  15. “Hacker_R_US”因炸弹威胁和DDoS勒索被判8年监禁
  16. 码元 码元传输速率 波特率 比特率 数据率
  17. Mysql删除数据什么情况下会释放空间
  18. windows模拟微信小程序_GitHub - ramwin/mini-program-reference: 微信小程序测试
  19. 人物关系挖掘方案设计
  20. 仿36氪(iOS版附源代码)

热门文章

  1. 华为G610(Android 4.2)永久关闭键盘灯的方法
  2. 计算机知识的黑板报图片大全,学习黑板报精选图片欣赏
  3. 【NOIP2012DAY1】国王游戏
  4. 传统分布式架构部署(apache+tomcat集群)
  5. CEX暴雷怎么办 一文读懂加密钱包产业现状
  6. idea 打包报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (defau
  7. 【GitLens】VsCode插件,查看代码是谁写的
  8. HelloWorld - Watir
  9. 第十篇,STM32串口蓝牙编程
  10. 读王垠《一种新的操作系统设计》