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

怎样选择网站建设公司百度网站流量查询

怎样选择网站建设公司,百度网站流量查询,WordPress结婚主题模板,阿里巴巴官网app文章目录 1 实验任务2 系统框图3 软件设计 1 实验任务 本实验任务是使用PS端UART控制器,完成串口中断数据环回的功能。 2 系统框图 3 软件设计 注意事项: 同时使能XUARTPS_IXR_RXOVR 和XUARTPS_IXR_TOUT,以支持不定长数据接收&#xff1b…

文章目录

  • 1 实验任务
  • 2 系统框图
  • 3 软件设计

1 实验任务

本实验任务是使用PS端UART控制器,完成串口中断数据环回的功能。

2 系统框图

在这里插入图片描述

3 软件设计

注意事项:

  1. 同时使能XUARTPS_IXR_RXOVR 和XUARTPS_IXR_TOUT,以支持不定长数据接收;
  2. 对于XUartPs_Recv函数
    • (1) 禁用所有中断
    • (2) 使用XUartPs_ReceiveBuffer函数从RX FIFO中读取数据
    • (3) 恢复中断使能
    • (4) 返回实际读取的个数;
  3. 接收超时是个好东西,哈哈哈。
/************************** Include Files ***********************************/
#include "xparameters.h"
#include "xuartps.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "stdio.h"/************************** Constant Definitions ****************************/
#define UART_DEVICE_ID		XPAR_XUARTPS_0_DEVICE_ID
#define INTC_DEVICE_ID		XPAR_SCUGIC_SINGLE_DEVICE_ID
#define UART_INTR_ID		XPAR_XUARTPS_1_INTR#define BUFFER_SIZE 		64   // 接收缓冲区大小
#define FIFO_TRIGGER_LEVEL  32   // FIFO触发阈值
#define RECV_TIMEOUT        4    // 接收超时时间(单位:波特率时钟周期)/************************** Function Prototypes *****************************/
s32  UartPsInit(XUartPs *UartPsInstPtr, XUartPsFormat* UartFormatPtr);
s32  SetupInterruptSystem(XScuGic *IntcInstPtr, XUartPs *UartPsInstPtr);
void UartIntrHandler(void *CallBackRef);/************************** Variable Definitions ****************************/
XUartPs UartInst;
XScuGic IntcInst;u8 RxBuffer[BUFFER_SIZE] = { 0 };  // 接收缓冲区int RxDataLength = 0;  // 接收到的数据长度XUartPsFormat UartFormat = {XUARTPS_DFT_BAUDRATE,     // 115200XUARTPS_FORMAT_8_BITS,XUARTPS_FORMAT_NO_PARITY,XUARTPS_FORMAT_1_STOP_BIT
};
/************************** Function Implementation *************************/int main()
{//s32 Status;// 初始化UARTStatus = UartPsInit(&UartInst, &UartFormat);if (Status != XST_SUCCESS) {return XST_FAILURE;}// 设置中断系统Status = SetupInterruptSystem(&IntcInst, &UartInst);if (Status != XST_SUCCESS) {return XST_FAILURE;}// 主循环while(1){;}//return 0;
}s32 UartPsInit(XUartPs *UartInstPtr, XUartPsFormat* UartFormatPtr)
{//s32 Status;XUartPs_Config *UartConfigPtr;// 查找UART配置UartConfigPtr = XUartPs_LookupConfig(UART_DEVICE_ID);if(NULL == UartConfigPtr){return XST_FAILURE;}// 初始化UARTStatus = XUartPs_CfgInitialize(UartInstPtr, UartConfigPtr, UartConfigPtr->BaseAddress);if (Status != XST_SUCCESS) {return XST_FAILURE;}// 设置UART数据格式XUartPs_SetDataFormat(UartInstPtr, UartFormatPtr);// 设置UART操作模式XUartPs_SetOperMode(UartInstPtr, XUARTPS_OPER_MODE_NORMAL);// 设置接收FIFO触发阈值XUartPs_SetFifoThreshold(UartInstPtr, FIFO_TRIGGER_LEVEL);// 设置接收超时XUartPs_SetRecvTimeout(UartInstPtr, RECV_TIMEOUT);// 设置中断掩码,使能FIFO触发中断和接收超时中断XUartPs_SetInterruptMask(UartInstPtr, XUARTPS_IXR_RXOVR | XUARTPS_IXR_TOUT);//return XST_SUCCESS;
}s32 SetupInterruptSystem(XScuGic *IntcInstPtr, XUartPs *UartInstPtr)
{//s32 Status;XScuGic_Config *IntcConfigPtr;// 初始化中断控制器GICIntcConfigPtr = XScuGic_LookupConfig(INTC_DEVICE_ID);if (NULL == IntcConfigPtr){return XST_FAILURE;}Status = XScuGic_CfgInitialize(IntcInstPtr, IntcConfigPtr, IntcConfigPtr->CpuBaseAddress);if (Status != XST_SUCCESS){return XST_FAILURE;}// 注册异常处理程序Xil_ExceptionInit();Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT, (Xil_ExceptionHandler)XScuGic_InterruptHandler, IntcInstPtr);Xil_ExceptionEnable();// 连接UART中断处理程序XScuGic_Connect(IntcInstPtr, UART_INTR_ID, (Xil_InterruptHandler)UartIntrHandler, (void *)UartInstPtr);// 使能UART中断XScuGic_Enable(IntcInstPtr, UART_INTR_ID);//return XST_SUCCESS;
}void UartIntrHandler(void *CallBackRef)
{//XUartPs* UartInstPtr = (XUartPs*)CallBackRef;u32 IsrStatus;// 读取中断状态IsrStatus = XUartPs_ReadReg(UartInstPtr->Config.BaseAddress, XUARTPS_IMR_OFFSET);IsrStatus &= XUartPs_ReadReg(UartInstPtr->Config.BaseAddress, XUARTPS_ISR_OFFSET);// 处理FIFO触发中断if ((IsrStatus & (u32)XUARTPS_IXR_RXOVR) != (u32)0) {// 读取FIFO中的数据RxDataLength = XUartPs_Recv(UartInstPtr, RxBuffer, BUFFER_SIZE);// 清除中断状态XUartPs_WriteReg(UartInstPtr->Config.BaseAddress, XUARTPS_ISR_OFFSET, XUARTPS_IXR_RXOVR);//printf("Rx Trigger, Receive %u Bytes.\n", RxDataLength);}// 处理接收超时中断if ((IsrStatus & (u32)XUARTPS_IXR_TOUT) != (u32)0) {// 读取FIFO中剩余的数据RxDataLength = XUartPs_Recv(UartInstPtr, RxBuffer, BUFFER_SIZE);// 清除中断状态XUartPs_WriteReg(UartInstPtr->Config.BaseAddress, XUARTPS_ISR_OFFSET, XUARTPS_IXR_TOUT);//printf("Rx Timeout, Receive %u Bytes.\n", RxDataLength);}// 如果有数据接收到if (RxDataLength > 0) {// 处理接收到的数据XUartPs_Send(UartInstPtr, RxBuffer, RxDataLength);//RxDataLength = 0;}//return;
}

文章转载自:

http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://00000000.qmmsb.cn
http://www.dtcms.com/wzjs/618900.html

相关文章:

  • 哪些网站是营销型网站及原因下载 wordpress插件怎么用
  • 网站源码在哪里怎么在网站上做推
  • 海口网站运营托管费用做网站首页ps中得多大
  • 电商网站开发技术与维护沃尔玛网上商城中国
  • 宁波网站开发公司怎么样适合大学生做的兼职网站
  • 网站开发公司会计新出的网络游戏排行榜
  • 空间购买网站南平建设集团有限公司网站
  • 关键词是什么百度关键词优化是什么意思
  • 做的好的国外网站营销网站建站企业
  • 长春网站建设团队云南网站开发建设
  • 为什么要建设医院网站用ps制作网页教程
  • 网站域名注册多少钱网站建设登录
  • 网站建设属于IT建设一个网站花多少钱
  • 如何让百度收录自己的网站一站式做网站企业
  • 网站目录权限设置如何做网站推广获客
  • 如何做网站软件阜城县网站建设报价
  • 网站建设谈判网站开发考什么证
  • 网站国际网络备案号网联科技网站建设
  • 响应式网站建设系统前端和后端哪个难
  • 潍坊信息网网站建设做体育赛事网站公司
  • 重庆网网站建设公司免费的个人简历模板 简约
  • 三好街做网站公司海南网站建设
  • 个人做动漫资源网站有哪些天津建设工程招标信息网官网
  • 百度信誉任何在网站展示网站后端开发流程
  • 网站备案免费的吗什么行业需要做网站和推广
  • 温州市永嘉上塘建设局网站什么是网络营销的综合性工具
  • 太原站扩建后的规模滕州网站建设哪家好
  • 响应网站建设东莞网络营销网络培训学校
  • 四川广汇建设有限公司网站涿鹿做网站wl17581
  • 建网站投放广告赚钱网站上传后