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

用discuz做行业网站广州从化建设网站官网

用discuz做行业网站,广州从化建设网站官网,成都住建局官网智慧工地,上海个人网站备案本文最后修改时间:2025年05月10日 01:57 一、本节简介 本节以树莓派pico2开发板为例,举例如何写一个USB虚拟串口的驱动加进工程里。 二、实验平台 1、硬件平台 1)树莓派pico2开发板 ①树莓派pico2开发板(作为仿真器&#xff0…

本文最后修改时间:2025年05月10日 01:57

一、本节简介

本节以树莓派pico2开发板为例,举例如何写一个USB虚拟串口的驱动加进工程里。

二、实验平台

1、硬件平台

1)树莓派pico2开发板

①树莓派pico2开发板(作为仿真器)

②micro usb数据线

2)电脑

3)香瓜RP2350目标板

2、软件平台

1)VS CODE

2)sscom5.13.1(串口工具)

三、版权声明

1)作者:甜甜的大香瓜

2)声明:喝水不忘挖井人,转载请注明出处。

3)纠错/业务合作:897503845@qq.com

4)香瓜嵌入式之树莓派群:512598061

5)本文出处:原创连载资料《简单粗暴学树莓派》

6)完整开源资料下载地址(电脑端打开):

opengua.taobao.com

四、实验前提

1、在进行本文步骤前,请先阅读以下章节:

1)《简单粗暴学树莓派》的“第一章至第二章”章节

2、在进行本文步骤前,请先实现以下章节:

1)《简单粗暴学树莓派》的《香瓜树莓派RP2350之搭建开发环境(windows)》

2)《简单粗暴学树莓派》的《香瓜树莓派RP2350之新建工程》

五、硬件原理

1、硬件连接

实际只接了4根线,3.3V、GND、CLK、DIO

注意: 给pico2供电时接VSYS,是因为pico2会再经过稳压到3.3v供电给pico2目标板的rp2350。而香瓜使用的板子仿真接口是直接供电给rp2350的,所以需要直连3.3v。

2、原理图

RP2350的USB信号连接到板载的USB接口上

六、实验步骤

1、在VS CODE工程文件夹下,添加驱动GUA_USBtoUart.c(VS CODE会自动加载)

//**********************************************************************

//name:         GUA_USBtoUart.c

//introduce:    USB转串口驱动

//author:       opengua     

//email:        897503845@qq.com  

//QQ group:     香瓜嵌入式之树莓派群(512598061)

//shop:         opengua.taobao.com

//changetime:   2025.02.18

//**********************************************************************

#include "pico/stdlib.h"

#include "GUA_USBtoUart.h"

#include "main.h"

/*********************全局变量************************/

uint8_t gaGUA_USBtoUART_Rx_Buff[GUA_USB_TO_UART_RX_SIZE] = {0};

volatile uint8_t gGUA_USBtoUART_Rx_Length = 0;       //必须加volatile,否则会被优化

/*********************内部函数************************/

static void GUA_Chars_Available_Callback(void* param);

//**********************************************************************

//name:         GUA_Chars_Available_Callback

//introduce:    回调函数

//parameter:    none

//return:       none

//author:       opengua

//email:        897503845@qq.com

//QQ group:     香瓜嵌入式之树莓派群(512598061)

//shop:         opengua.taobao.com

//changetime:   2025.02.18

//**********************************************************************

static void GUA_Chars_Available_Callback(void* param)

{

    int nGUA_Temp = 0;

    //记录接收数据前清零

    gGUA_USBtoUART_Rx_Length = 0;

    //如果不读出数据会一直进中断;正常数据大于等于0,读完后则会返回负数

    while((nGUA_Temp = getchar_timeout_us(100)) >= 0)

    {

        gaGUA_USBtoUART_Rx_Buff[gGUA_USBtoUART_Rx_Length] = nGUA_Temp;

        gGUA_USBtoUART_Rx_Length++;

    }

    //发送数据

    //GUA_USBtoUart_Send(gaGUA_USBtoUART_Rx_Buff, gGUA_Length);

    //进入通信处理事件

    gnGUA_Function = FUNC_GUA_COMMUNICAION_PROCESS_EVT;    

}

//**********************************************************************

//name:         GUA_USBtoUart_Send

//introduce:    初始化

//parameter:    pGUA_Data:发送数据缓冲区

//              nGUA_Len:数据长度

//return:       none

//author:       opengua

//email:        897503845@qq.com

//QQ group:     香瓜嵌入式之树莓派群(512598061)

//shop:         opengua.taobao.com

//changetime:   2025.02.18

//**********************************************************************

void GUA_USBtoUart_Send(uint8_t *pGUA_Data, uint8_t nGUA_Len)

{

    for(uint8_t i = 0; i<nGUA_Len; i++)

    {

        stdio_putchar_raw(pGUA_Data[i]);

    }

}

//**********************************************************************

//name:         GUA_USBtoUart_Init

//introduce:    初始化

//parameter:    none

//return:       none

//author:       opengua

//email:        897503845@qq.com

//QQ group:     香瓜嵌入式之树莓派群(512598061)

//shop:         opengua.taobao.com

//changetime:   2025.02.18

//**********************************************************************

//需要在CMakeLists.txt文件中打开usb(同时关闭串口为0):pico_enable_stdio_usb(ArgonOne_RP2350 1)

void GUA_USBtoUart_Init(void)

{

    //初始化usb转串口 这条不能被调用两次,避免低功耗唤醒后被再次初始化,所以这条放到GUA_Init函数外

    //stdio_init_all(); 

    //usb的回调函数,如果有想传入回调函数的变量可以从第二个形参传入

    stdio_set_chars_available_callback(&GUA_Chars_Available_Callback, (void*)NULL);

    //打印

    //printf("GUA_USBtoUart_Init ok\r\n");

}

注意USB的回调函数里有香瓜的项目变量,添加后需要增删一些报错内容。

2、在VS CODE工程文件夹下,添加驱动GUA_USBtoUart.h(VS CODE会自动加载)

//**********************************************************************

//name:         GUA_USBtoUart.h

//introduce:    USB转串口驱动头文件

//author:       opengua     

//email:        897503845@qq.com  

//QQ group:     香瓜嵌入式之树莓派群(512598061)

//shop:         opengua.taobao.com

//changetime:   2025.02.18

//**********************************************************************

#ifndef _GUA_USB_TO_UART_H_

#define _GUA_USB_TO_UART_H_

/*********************头文件************************/

#include <stdio.h>

/*********************宏定义************************/

//串口缓冲区大小

#define GUA_USB_TO_UART_RX_SIZE     128

/*********************全局变量************************/

extern uint8_t gaGUA_USBtoUART_Rx_Buff[GUA_USB_TO_UART_RX_SIZE];

volatile extern uint8_t gGUA_USBtoUART_Rx_Length;

/*********************外部函数************************/

extern void GUA_USBtoUart_Send(uint8_t *pGUA_Data, uint8_t nGUA_Len);

extern void GUA_USBtoUart_Init(void);

#endif

3、添加对应驱动文件名称

4、打开USB开关、关闭串口开关(只能打开一个)

5、在应用层中调用

1)添加驱动头文件(main.c中)

#include "GUA_USBtoUart.h"

2)添加驱动初始化代码1(main.c的main函数中)

    //串口转USB初始化

    GUA_USBtoUart_Init();

3)添加驱动初始化代码2(main.c的main函数中前面

    //初始化usb转串口 这条不能被调用两次,避免低功耗唤醒后被再次初始化,所以这条放到GUA_Init函数外

    stdio_init_all(); 

七、实验结果

用USB连接设备和电脑,编译并仿真,全速运行。即可通过sscom5.13.1识别到串口了,可进行收发(需要修改USB回调函数)

因此实验成功。


文章转载自:

http://EGWkSfGv.pswqx.cn
http://hN5mfiDu.pswqx.cn
http://AUfYiQp8.pswqx.cn
http://QWuXkaAX.pswqx.cn
http://fZ83Gnsx.pswqx.cn
http://JEmFWcBY.pswqx.cn
http://5Z55xJfv.pswqx.cn
http://ftumQr0C.pswqx.cn
http://mUqbqpfE.pswqx.cn
http://0tuoRttN.pswqx.cn
http://704tbBLz.pswqx.cn
http://9ndpxe62.pswqx.cn
http://SSU5r8sy.pswqx.cn
http://lLHrsqKd.pswqx.cn
http://6BSIOVWB.pswqx.cn
http://q1LPRC9m.pswqx.cn
http://srfdM5S4.pswqx.cn
http://bJmj4EC3.pswqx.cn
http://vWEyiknu.pswqx.cn
http://2MygKnyJ.pswqx.cn
http://HXNzQmQt.pswqx.cn
http://60dkQA9g.pswqx.cn
http://T6ACgKCX.pswqx.cn
http://Q6XSStHH.pswqx.cn
http://f6ddRwvv.pswqx.cn
http://SeycGr7j.pswqx.cn
http://6LOOqDFe.pswqx.cn
http://VeHQX28y.pswqx.cn
http://dGChAIYO.pswqx.cn
http://deeGfVvE.pswqx.cn
http://www.dtcms.com/wzjs/658567.html

相关文章:

  • 响应式网站开发流行吗百度图片搜索网页版
  • 江苏建设执业资格注册中心官方网站网站地址解析
  • 大连做网站seo怎样优古网络公司网站后台
  • 苏州建设公司网站建设app推广团队
  • 网站顶端图片素材it培训班学出来有用吗
  • 品牌网站建设怎么样网络维护技术
  • 南宁网站制作工具广州 网站开发 公司
  • ps做的网站稿怎么做成网站网站域名注册证书
  • ps做网站大小尺寸移动网站建设是什么
  • 单位网站维护 网站建设岗位网页设计欣赏有符号
  • 亳州建设网站公司邢台网站建设包括哪些
  • pc网站转换成微网站wordpress 经典推荐
  • 手机网站 制作教程网页美工设计教案
  • 网站建设推广哪个好wordpress如何添加模板文件
  • 提供网站建设课程seo网站推广的主要目的不包括
  • 做门户网站的思路wordpress基础安装
  • 临西企业做网站网站建设和优化那本书好
  • access做网站网站开发前端规范
  • 做视频网站犯法吗网站导航怎么用ulli做
  • 做预算查市场价格的网站wordpress 插件 图片上传
  • 网站域名和网站网址吗Wordpress写文章刷不开
  • 做网站 免费字体网站建设有哪几种
  • 怎样用网站做单笔外贸平湖网站建设公司
  • 决定网站打开的速度吗360网站推广官网网址
  • 邢台做移动网站多少钱在线考试系统网站建设
  • 宁波网站建设公司怎么报价wordpress 后台首页
  • 电子商务网站建设技术有哪些方面人力资源外包服务包括哪些
  • 无锡网站设计 众廊坊seo
  • 网站的分页做不好会影响主页长沙做网站改版哪里好
  • 营销活动网站服装行业网站建设