当前位置: 首页 > news >正文

沈阳网站选禾钻科技seo销售

沈阳网站选禾钻科技,seo销售,无锡企业自助建站系统,西安网站手机网站建设实验任务&#xff1a;使用uart控制器&#xff0c;完成串口中断数据环回的功能 UART发送接收原理&#xff1a; 硬件block design&#xff1a;COPY之前的GPIO_MIO实验 VITIS代码&#xff1a;根据之前的GPIO_MIO实验来改 //UART头文件 #include <stdio.h> #include "…

实验任务:使用uart控制器,完成串口中断数据环回的功能

UART发送接收原理:

硬件block design:COPY之前的GPIO_MIO实验

VITIS代码:根据之前的GPIO_MIO实验来改

//UART头文件
#include <stdio.h>
#include "xparameters.h"
#include "xuartps.h"
#include "xscugic.h"
#include "xil_exception.h"//宏定义
#define UART_DEVICE_ID		XPAR_XUARTPS_0_DEVICE_ID //使用的UART的器件ID
#define UART_INTERRUPT_ID	XPAR_XUARTPS_0_INTR      //针对UART0中断ID
#define INTC_DEVICE_ID		XPAR_SCUGIC_SINGLE_DEVICE_ID //针对中断控制器(GIC)的器件ID//声明变量
XUartPs UartPs;  //UART器件的驱动实例
XScuGic Intc;    //GIC器件的驱动实例void uart_init(XUartPs *uart_ps);
void uart_intr_setup(XScuGic *Intc,XUartPs *uartPs);
void uart_intr_Handler(void *CallBackRef);int main(void)
{//UART初始化和配置uart_init(&UartPs);//UART的中断配置uart_intr_setup(&Intc,&UartPs);while(1);return 0;
}void uart_init(XUartPs *uart_ps)
{XUartPs_Config *uart_cfg;//第一步:根据uart ID去查找器件的配置信息uart_cfg = XUartPs_LookupConfig(UART_DEVICE_ID);//第二步:对GPIO的驱动进行初始化//XUartPs_CfgInitialize这个库函数里默认8bit数据位,1位停止位0校验;且波特率默认115200XUartPs_CfgInitialize(uart_ps,uart_cfg,uart_cfg->BaseAddress);//对uart进行配置//设置波特率XUartPs_SetBaudRate(uart_ps, 115200);//默认115200,可参数化修改//设置模式为正常模式XUartPs_SetOperMode(uart_ps,XUARTPS_OPER_MODE_NORMAL);//设置RxFIFO的触发阈值:1(即写入一位数据就可已开始读出)XUartPs_SetFifoThreshold(uart_ps,1);
}void uart_intr_setup(XScuGic *Intc,XUartPs *uart_Ps)
{XScuGic_Config *IntcConfig; //GIC配置信息的驱动实例//根据中断控制器(GIC)的器件ID来查找配置信息IntcConfig = XScuGic_LookupConfig(INTC_DEVICE_ID);//根据查找到的配置信息初始化中断控制器(GIC)XScuGic_CfgInitialize(Intc, IntcConfig,IntcConfig->CpuBaseAddress);//关联GPIO中断处理程序XScuGic_Connect(Intc, UART_INTERRUPT_ID,(Xil_ExceptionHandler)uart_intr_Handler,(void *)uart_Ps);//对UART的中断进行配置XUartPs_SetInterruptMask(uart_Ps,XUARTPS_IXR_RXOVR);//使能UART的中断XScuGic_Enable(Intc, UART_INTERRUPT_ID);//异常初始化(初始化ARM处理器异常句柄)Xil_ExceptionInit();//注册中断请求异常的处理程序Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler,Intc);//使能处理器的中断Xil_ExceptionEnableMask(XIL_EXCEPTION_IRQ);
}//UART中断处理函数
void uart_intr_Handler(void *CallBackRef)
{u32 int_state;u8  rec_data;XUartPs *uart_ps = (XUartPs *)CallBackRef;//获取开启了哪些中断int_state = XUartPs_GetInterruptMask(uart_ps);//获取中断状态寄存器int_state &= XUartPs_ReadReg(uart_ps->Config.BaseAddress,XUARTPS_ISR_OFFSET);//判断中断触发类型是否为RxFIFO的触发阈值//(如果与出来的值就是高电平那就是RxFIFO的触发)if(int_state & XUARTPS_IXR_RXOVR){//读取RxFIFO中的数据rec_data = XUartPs_RecvByte(uart_ps->Config.BaseAddress);//清除中断XUartPs_WriteReg(uart_ps->Config.BaseAddress,XUARTPS_ISR_OFFSET,XUARTPS_IXR_RXOVR);//将接受的数据发送出去(发送数据:写TxFIFO寄存器)XUartPs_SendByte(uart_ps->Config.BaseAddress,rec_data);}
}

 烧录上板验证:

在115200的波特率下,发送的数据能通过串口正常接收

http://www.dtcms.com/a/521291.html

相关文章:

  • 像Linux的systemd一样创建一个windows系统服务,让nginx服务随windows系统启动而自动启动服务
  • lesson75:Vue 数据绑定实战:v-model 表单处理与 v-bind 样式控制全解析
  • 图的基本概念与操作
  • **发散创新:深度解析错误处理机制的设计与实现**在软件开发过程中,错误处理是不
  • app大全软件网站中国建筑网官网监理工程师网站
  • 三明网站建设公司免费秒开小游戏
  • 宿迁华夏建设集团网站东莞网络科技公司排名
  • NVIDIA NCCL 源码学习(十五)- Symmetric Memory
  • 3.无重复字符的最长子串
  • 网站开发范例文档wordpress新建页面慢
  • 什么是 Spring IOC 容器?
  • 重庆网站建设的好处网站建设不好
  • wordpress做游戏网站做logo赚钱的网站
  • 搜索建站百度95099怎么转人工
  • DeepSeek-GRPO (PPO)
  • 企业免费网站系统下载地址wordpress 如何开发
  • 阿里云域名备案网站建设方案上海工程建设造价信息网站
  • 山东高密网站建设wordpress怎么用模板
  • Prometheus(三)—— PromQL从入门到精通:掌握Prometheus数据查询的核心技术
  • 怎么在国外建网站建设行业网站大概需要都少钱
  • 手机网站有什么区别是什么意思网站开发所需费用支出有哪些
  • 网站空间的根目录可以以个人名义做网站么
  • 新网站推广方案系统优化有什么用
  • 外部依赖不稳定会给项目带来哪些风险
  • 【图像处理基石】多光谱图片去噪入门:从概念到Python实操
  • 国外网站 dns济南公司网站开发
  • 文档质量差会如何影响后期维护
  • 气象网站建设需求方案我想自己在网站上发文章 怎样做
  • 深圳微商城网站设计公司设计logo商标
  • 深度学习(四)——logistic回归