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

阿里云服务器如何配置多网站wordpress网站模板仿站工具

阿里云服务器如何配置多网站,wordpress网站模板仿站工具,体育热点新闻,wordpress上传的文件在哪个文件夹文章目录 [toc]1. GW1NSR-4C串口外设简介2. FPGA配置3. 常用函数4. 轮询方式接收数据5. 中断方式接收数据 本文是高云FPGA系列教程的第8篇文章。 本篇文章介绍片上ARM Cortex-M3硬核处理器串口外设的使用#xff0c;演示轮询方式和中断方式接收串口数据#xff0c;并进行回环… 文章目录 [toc]1. GW1NSR-4C串口外设简介2. FPGA配置3. 常用函数4. 轮询方式接收数据5. 中断方式接收数据 本文是高云FPGA系列教程的第8篇文章。 本篇文章介绍片上ARM Cortex-M3硬核处理器串口外设的使用演示轮询方式和中断方式接收串口数据并进行回环测试基于TangNano 4K开发板。 参考文档Gowin_EMPU(GW1NS-4C)软件编程 参考手册 1. GW1NSR-4C串口外设简介 GW1NSR-4C ARM部分共有2个串口外设都挂载在APB1总线上最高支持波特率921.6Kbit/s无奇偶校验位8位数据位1位停止位支持高速测试模式 HSTMHigh Speed Test Mode即每个时钟周期输出1位数据可以在短时间内传输大量数据。 官方手册上没有描述发送和接收缓存FIFO的深度所以不确定是否支持缓存。 2. FPGA配置 FPGA部分需要在云源软件中手动使能EMPU串口外设如下图所示。 不需要其他配置使用起来非常简单。 3. 常用函数 高云串口驱动函数常用的有以下几个 //串口初始化指定波特率和中断使能高速测试模式等 ErrorStatus UART_Init(UART_TypeDef* UARTx, UART_InitTypeDef* UART_InitStruct) //获取接收缓存区状态当接收到数据时返回SET FlagStatus UART_GetRxBufferFull(UART_TypeDef* UARTx) //获取发送缓存区状态 FlagStatus UART_GetTxBufferFull(UART_TypeDef* UARTx) //发送一个字节 void UART_SendChar(UART_TypeDef* UARTx,char txchar) //发送字符串 void UART_SendString(UART_TypeDef* pUARTx, char *str) //接收一个字节轮询或接收中断时调用自动 char UART_ReceiveChar(UART_TypeDef* UARTx) //获取接收中断的状态当被触发时返回SET ITStatus UART_GetRxIRQStatus(UART_TypeDef* UARTx) //获取发送中断的状态 ITStatus UART_GetTxIRQStatus(UART_TypeDef* UARTx) //清除接收中断 void UART_ClearRxIRQ(UART_TypeDef* UARTx) //清除发送中断 void UART_ClearTxIRQ(UART_TypeDef* UARTx)下面来介绍串口接收数据的两种方式轮询方式和中断方式。 4. 轮询方式接收数据 初始化时不使能接收中断 void uart0_init(uint32_t BaudRate) {UART_InitTypeDef UART_InitStruct;UART_InitStruct.UART_Mode.UARTMode_Tx ENABLE;UART_InitStruct.UART_Mode.UARTMode_Rx ENABLE;UART_InitStruct.UART_Int.UARTInt_Tx DISABLE;UART_InitStruct.UART_Int.UARTInt_Rx DISABLE;UART_InitStruct.UART_Ovr.UARTOvr_Tx DISABLE;UART_InitStruct.UART_Ovr.UARTOvr_Rx DISABLE;UART_InitStruct.UART_Hstm DISABLE;UART_InitStruct.UART_BaudRate BaudRate;//Baud RateUART_Init(UART0, UART_InitStruct); }主循环中直接把收到的数据通过串口发送出去 while(1) {if(UART_GetRxBufferFull(UART0)){cnt_idle 0;rx UART_ReceiveChar(UART0);printf(rec data: %c\r\n, rx);} }这种简单粗暴的方式会导致数据丢失可能是串口接收部分没有FIFO导致 我们可以采用缓冲区配合超时空闲的方式来处理首先定义一个缓冲数组用来存储收到的数据并通过一个计时器来判断当前是否空闲若空闲则把数据返回 uint8_t rx 0; uint8_t buf[256]; uint16_t buf_idx 0; uint32_t cnt_idle 0;//空闲超时方式接收不丢失数据 while(1) {//空闲时间计数器if(buf_idx ! 0){cnt_idle;}else {cnt_idle 0;}//数据缓存到数组中if(UART_GetRxBufferFull(UART0)){cnt_idle 0;buf[buf_idx] UART_ReceiveChar(UART0);buf_idx;}//长时间没有接收到串口数据把缓冲区数据返回if(cnt_idle 5000) //明显感觉500000{UART_SendString(UART0, buf);cnt_idle 0;buf_idx 0;memset(buf, 0, sizeof(buf)/sizeof(buf[0]));} }实际测试效果很不错数据没有任何丢失 下面来介绍通过串口接收中断的方式来缓存数据。 5. 中断方式接收数据 初始化时使能串口接收中断并通过NVIC开启串口中断请求。 void uart0_init(uint32_t BaudRate) {UART_InitTypeDef UART_InitStruct;NVIC_InitTypeDef InitTypeDef_NVIC;UART_InitStruct.UART_Mode.UARTMode_Tx ENABLE;UART_InitStruct.UART_Mode.UARTMode_Rx ENABLE;UART_InitStruct.UART_Int.UARTInt_Tx DISABLE;UART_InitStruct.UART_Int.UARTInt_Rx ENABLE; //开启接收中断UART_InitStruct.UART_Ovr.UARTOvr_Tx DISABLE;UART_InitStruct.UART_Ovr.UARTOvr_Rx DISABLE;UART_InitStruct.UART_Hstm DISABLE;UART_InitStruct.UART_BaudRate BaudRate;//Baud RateUART_Init(UART0, UART_InitStruct);//Enable UART0 interrupt handlerInitTypeDef_NVIC.NVIC_IRQChannel UART0_IRQn;InitTypeDef_NVIC.NVIC_IRQChannelPreemptionPriority 1;InitTypeDef_NVIC.NVIC_IRQChannelSubPriority 1;InitTypeDef_NVIC.NVIC_IRQChannelCmd ENABLE;NVIC_Init(InitTypeDef_NVIC); }串口中断服务函数数据缓存到数组中并清零空闲计数器 void UART0_Handler(void) {char rx 0;if(UART_GetRxIRQStatus(UART0) SET){rx UART_ReceiveChar(UART0);buf[buf_idx] rx;buf_idx;cnt_idle 0;}UART_ClearRxIRQ(UART0); }需要注释掉系统默认提供的串口中断服务函数否则编译会报错。 主循环中通过一个计数器来判断串口是否空闲当超时没有收到新的数据时认为串口空闲把缓冲区的数据返回 uint8_t rx 0; uint8_t buf[256]; uint16_t buf_idx 0; uint32_t cnt_idle 0;while(1) {//长时间没有接收到串口数据if(buf_idx ! 0)cnt_idle;else cnt_idle 0;if(cnt_idle 5000) //明显感觉500000{printf(rx: %s, buf);cnt_idle 0;buf_idx 0;memset(buf, 0, sizeof(buf)/sizeof(buf[0]));} }下载运行数据完整 本文是高云FPGA系列教程的第8篇文章。
http://www.zqtcl.cn/news/425689/

相关文章:

  • 南京建站公司网站网站视频源码地址
  • 德阳建设局网站做公众号首图的网站
  • 南阳网站优化渠道山西太原最新消息
  • 发布做网站需求qq群centos wordpress 建站教程
  • 东阳网站建设yw126南京网站改版
  • discuz视频网站模板徐州专业网站建设公司哪家好
  • 网站开发投资成本Wordpress显示成缩略图
  • 网站域名和网站网址吗中东跨境电商平台有哪些
  • 常宁市城乡和住房建设网站怎样加强文化建设
  • 视频网站如何做营销策划模板网站 seo
  • 中企动力做网站好吗网页建设软件
  • 爱站网seo浙江省嘉兴市建设局网站
  • 南宁做网站比较好的公司有哪些贵阳网站上门备案业务
  • 网络叶子 网站推广做一手房做那个网站好
  • 太仓网站建设平台成都家装设计公司排名
  • 现在建一个网站一年费用只要几百元如何建一个免费试用网站
  • 网站没有被收录销售型网站的建设流程及特点
  • 成都58手机微信网站建设名录近一周财经新闻热点
  • wordpress情侣网站源码微信开放平台官网登录
  • 网站改版提示无需改版有没有兼职做设计的网站
  • 网站sem怎么做网络建设设计方案
  • wap网站在线生成做饰品网站
  • 网站主机在哪里注册呢江西的赣州网站建设
  • 零基础网站建设视频教程建筑设计专业是干什么的
  • 淘客做网站的话虚拟主机多大重庆网上房地产网签合同查询
  • 官网建站网站seo关键字优化软件
  • 网站制作的内容什么好开发板用什么语言编程
  • 医院品牌网站建设aws创建wordpress
  • dw做的网站怎么让别人看到动易网站频道栏目字体大小修改
  • 东莞网站设计公司排名辽宁建设工程信息网网上开标