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

建设定制网站搜索引擎网络排名

建设定制网站,搜索引擎网络排名,凡科做的网站好吗,网站建设步骤及分工1.开发环境 OS: Windows 11开发板:海凌科 HLK-W800-KIT-PROSDK: W80X_SDK_v1.00.10IDE: CSKY Development Kit 2.UART 使用 在 SDK 中创建文件 uart_test.h 和 uart_test.c,然后在 CDK 项目中添加这两个文件,CDK 会自动 include 头文件。 …

1.开发环境

  • OS: Windows 11
  • 开发板:海凌科 HLK-W800-KIT-PRO
  • SDK: W80X_SDK_v1.00.10
  • IDE: CSKY Development Kit

2.UART 使用

在 SDK 中创建文件 uart_test.huart_test.c,然后在 CDK 项目中添加这两个文件,CDK 会自动 include 头文件。
在这里插入图片描述
uart_test.h

#ifndef UART_TEST_H
#define UART_TEST_H#include "wm_include.h"void uart_echo_test(void);#endif // UART_TEST_H

uart_test.c

#include "uart_test.h"
#include "wm_gpio_afsel.h"u8 rx_buf[1024];
u16 rx_buf_len;void uart_test_rx_callback(u16 len, void *priv_data)
{printf("%d\n", len);rx_buf_len += len;
}void uart_echo_test(void)
{wm_uart1_tx_config(WM_IO_PB_06);wm_uart1_rx_config(WM_IO_PB_07);tls_uart_options_t uart_opt;uart_opt.baudrate = TLS_UART_BAUDRATE_115200;uart_opt.charlength = TLS_UART_CHSIZE_8BIT;uart_opt.paritytype = TLS_UART_PMODE_DISABLED;uart_opt.flow_ctrl = TLS_UART_FLOW_CTRL_NONE;uart_opt.stopbits = TLS_UART_ONE_STOPBITS;tls_uart_port_init(TLS_UART_1, &uart_opt, 0);tls_uart_rx_callback_register(TLS_UART_1, (s16(*)(u16, void *))uart_test_rx_callback, NULL);while (1){if (rx_buf_len > 0){u8 rx_cb_len = tls_uart_read(TLS_UART_1, rx_buf, rx_buf_len);tls_uart_write(TLS_UART_1, rx_buf, rx_cb_len);rx_buf_len -= rx_cb_len;}}
}

最后在 UserMain() 中调用 uart_test() 就行了,记得 include。

3. 解释

W800 的 UART 流程图(RX)
在这里插入图片描述
uart fifo 接收不固定,比如一次性接收的数据超过 16 bytes,就会被分成多个,例如 28 bytes 就会被分成 16,8,4 bytes(奇怪的特性)。
如果想要获取接收的数据,就必须通过 tls_uart_read() 从 receive buffer 中读取,它会返回 uart fifo 接收的数据长度。

遇到的问题

SDK 给的 UART API 很奇怪,中断会去调用 callback function,所以你需要先注册。根据源码

// wm_uart.c
......rxlen = rx_fifocnt;while (rx_fifocnt-- > 0){ch = (u8)port->regs->UR_RXW;recv->buf[recv->head] = ch;recv->head = (recv->head + 1) & (TLS_UART_RX_BUF_SIZE - 1);if (port->rx_callback != NULL && rx_byte_cb_flag){port->rx_callback(1, port->priv_data);}}
......

可以看到是 fifo_cnt 递减然后装进 recv->buf 里,但是这里是不会调用 port->rx_callback 的,因为 rx_byte_cb_flag 一直是 0,最后调 callback 的其实是这个

        if (rxlen && port->rx_callback != NULL && !rx_byte_cb_flag){port->rx_callback(rxlen, port->priv_data);}

如果是超过 16 byte,那么每次 callback 的 rxlen 就会出现这种情况
在这里插入图片描述

http://www.dinnco.com/news/197.html

相关文章:

  • 洛阳航迪科技网站建设公司怎么样百度推广效果怎样一天费用
  • 邓州网站建设网站运营推广的方法有哪些
  • 白头鹰网站一天可以做多少任务北京刚刚传来特大消息
  • 政府门户网站建设问卷调查上海关键词排名搜索
  • 利川做网站做小程序公司哪家好
  • 城乡互动联盟网站建设百度游戏中心app
  • 用asp做网站怎么布局黄页88
  • 武汉便民信息发布平台福州百度seo
  • 网站目录命名规则外贸google推广
  • 营销型网站建设套餐石家庄关键词优化平台
  • 做公司产品展示网站西安百度推广代运营
  • 什么网站做ppt好seo岗位是什么意思
  • 怎么做外围网站代理东莞优化网站关键词优化
  • 为什么网站很少做全屏百度收录查询网址
  • 乾县网站建设太原百度快照优化排名
  • 个人网站怎么做微信支付西安百度推广网站建设
  • 购物网站建设平台网络营销策划推广公司
  • 淘宝内部优惠券网站建设深圳 网站制作
  • 南昌做网站要多少钱近两年网络营销成功案例
  • 产品设计专业最好的大学seo优化效果怎么样
  • 网站关键词怎么修改做百度推广
  • 搭建一个电商网站需要多少费用中国刚刚发生8件大事
  • 广州公司网站建设公司网络营销推广技巧
  • 九江做网站的大公司沧州搜索引擎优化
  • 网站怎么做才沈阳关键词优化费用
  • 莆田网站格在哪里做引流推广平台有哪些
  • 河源做网站的客户最新新闻消息
  • 做爰全过程免费网站可以看郑州搜索引擎优化
  • 安徽智能网站建设哪里有磁力狗最佳搜索引擎
  • 免费创建单页网站高端网站建设定制