IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 玩转TM4C1294XL(6)——Uart串口 -> 正文阅读

[游戏开发]玩转TM4C1294XL(6)——Uart串口

1.简介
???????简单介绍芯片内部的uart串口模块,分享uart的配置。本人是边学习边记录,内容仅作参考,有错误的地方请见谅。

2.UART介绍
???????本部分内容参考自TI官方手册。
???????芯片内部一共有8路独立的串口,像奇偶校验、停止位、波特率等常规配置都是具备的,120M主频时波特率最大支持到15Mbps。其中uart0-uart4支持硬件流控,其他的串口不支持硬件流控。每个串口都有两个独立的16BytteFIFO,分别用于Tx和Rx。支持硬件的SIR(红外线)编解码功能,还支持ISO 7816 smartcard通信。每个串口的Tx和Rx都支持DMA操作。
在这里插入图片描述

图1 UART模块功能框图

3.UART配置
???????uart0配置实现接收中断,在接收中断中读取数据然后发送,实现一个简单的串口回射功能。

void bsp_InitUart0(void)
{
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    
    IntMasterEnable();
    
    // Set GPIO A0 and A1 as UART pins.
    GPIOPinConfigure(GPIO_PA0_U0RX);
    GPIOPinConfigure(GPIO_PA1_U0TX);
    GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
    
    // Configure the UART for 115,200, 8-N-1 operation.
    UARTConfigSetExpClk(UART0_BASE, SystemCoreClock, 115200,
                        (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
                        UART_CONFIG_PAR_NONE));
    
    // Enable the UART interrupt.
    IntEnable(INT_UART0);
    UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT);
}

//串口0中断函数
void UART0_Handler(void)
{
    uint32_t ui32Status;

    // Get the interrrupt status.
    ui32Status = UARTIntStatus(UART0_BASE, true);
    // Clear the asserted interrupts.
    UARTIntClear(UART0_BASE, ui32Status);
    // Loop while there are characters in the receive FIFO.
    while(UARTCharsAvail(UART0_BASE))
    {
        // Read the next character from the UART and write it back to the UART.
        UARTCharPutNonBlocking(UART0_BASE,
                               UARTCharGetNonBlocking(UART0_BASE));
    }
}

4.UART的FIFO测试
???????下载程序后可以对串口的接收FIFO进行测试,在接收中断里面打断点,通过串口助手发送数据,发送超过16个字节的数据,然后取消断点查看串口助手接收的数据个数是否为16个。测试结果如下图所示,我一次性发送20个字节数据,接收第一个字节时进入中断,然后程序停在中断中,剩下的数据硬件自动接收到FIFO中,直到FIFO被填满,然后取消断点FIFO中的数据被全部回射,可以看见一共只回射了16个字节数据。关闭FIFO再次进行相同的测试,最终只能回射1个字节数据。FIFO的可以在串口中断无法立刻执行的情况下对数据进行缓存,避免数据丢失。

在这里插入图片描述

图2 UART模块16byteFIFO测试
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:25:48  更:2022-03-21 21:28:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 18:38:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码