草庐IT

GD32F103 USBD CDC移植

firmwareversion:GD32F10x_Firmware_Library_V2.2.4模板工程:cdc_acm        GD32F103自带一个USBD,虚拟成串口设备来与上位机通信会比USART方便不少(主要是懒得接线~),GD官方给出的例子中结构还是很清晰的,本文仅记录一些要点。        在官方的cdc_acm工程中,程序会一直等待直到USB枚举成功后才会执行下一步骤。同时,在这个demo中,USB数据的收、发都需要在main的死循环中进行,主要逻辑如下所示:intmain(void){......while(USBD_CONFIGURED!=usbd_cdc.cur

[机器学习] 梯度下降 GD、随机梯度下降 SGD 和 SVRG

MLTheory太魔怔了!!!!!从微积分课上我们学到对一个\(\mathscrC^2\)函数,其二阶泰勒展开的皮亚诺余项形式\[f(\bmw')=f(\bmw)+\langle\nablaf(\bmw),\bmw'-\bmw\rangle+o(\|\bmw'-\bmw\|)\]这说明只要\(\bmw'\)和\(\bmw\)挨得足够接近,我们就可以用\(f(\bmw)+\langle\nablaf(\bmw),\bmw'-\bmw\rangle\)来逼近\(f(\bmw')\)。现在我们想定量描述这个逼近过程,来说明梯度下降(gredientdescent,GD)的收敛性及其速率。因此考虑其拉

GD32实现串口空闲(IDLE)中断 + DMA机制接收数据

前言串口功能在单片机开发中,是比较常用的外设,熟练使用串口功能也是驱动开发必备的技能之一。DMA是一种CPU辅助手段,可以在CPU不参与的情况下,是做一些辅助CPU的事情,如通常的数据搬运。在没有DMA之前,数据读取时,需要CPU的处理,在多任务处理时,增加资源紧缺(CPU调度);引入DMA之后,数据可以直接先进入DMA中处理,然后通过相应的标志,在需要的时候去DMA拿去即可,这样就极大的减轻CPU负担,提高了CPU的利用效率,有更多的时间去处理其它的事情。本文讲的即是利用串口空闲(IDLE)中断+DMA的机制来处理接收的数据。关于空闲的概念我在之前文章模拟串口收发驱动(采用IDLE信号机制)

【GD32】从0开始学GD32单片机(11)—— TIMER通用定时器详解+PWM波形输出捕获例程

目录简介计数模式捕获和比较通道输入捕获模式输出比较模式PWM模式边沿对齐PWM中央对齐PWM正交译码器从控制器例程简介在我的上一篇文章讲了基本定时器的用法和内部结构,点击下面的链接可以回顾一下。文章链接:TIMER基本定时器详解+1毫秒延时例程而这里将继续深入定时器,讲一讲通用定时器。下面是GD32各个定时器的差异表。通用定时器比较特别,它们之间还分了3个不同的版本——L0、L1和L2。大致的区别在于捕获\比较通道数、单脉冲模式支持、正交译码器支持、从设备控制器支持、内部连接支持、DMA支持。下面就以功能最全面的L0通用定时器为例,详细讲一讲。计数模式通用定时器支持向上计数、向下计数和中央对齐

[GD32F4]基于GD32固件库移植cherryusb[STM32F4]

[GD32F4]基于GD32固件库移植cherryusb[STM32F4]基础环境使用开发板是淘宝买的不知名开发板,没什么好说的,具体的型号是GD32F450VET6。使用的cherryusb版本是0.9.0版本。使用的GD32官方固件库版本是:GD32F4xx_Firmware_Library_V3.0.4大神速通cherryusb最牛的地方在于抛弃掉所有的依赖,只需要知道芯片的usb中断函数名称usb外设的基地址使用的io口就行。本文实现了gd32f4模拟usbfshid设备作为鼠标。具体步骤首先准备参考cherryusb的如下教程先放松一点,别管usb,老老实实准备一个可以使用串口pri

GD32F303高级定时器输出互补PWM-开发笔记

GD32F303高级定时器timer0输出3组互补PWM主要特性◼总通道数:4;◼计数器宽度:16位;◼时钟源可选:内部时钟,内部触发,外部输入,外部触发;◼多种计数模式:向上计数,向下计数和中央计数;◼正交编码器接口:被用来追踪运动和分辨旋转方向和位置;◼霍尔传感器接口:用来做三相电机控制;◼可编程的预分频器:16位,运行时可以被改变;◼每个通道可配置:输入捕获模式,输出比较模式,可编程的PWM模式,单脉冲模式;◼可编程的死区时间;◼自动重装载功能;◼可编程的计数器重复功能;◼中止输入功能;◼中断输出和DMA请求:更新事件,触发事件,比较/捕获事件,换相事件和中止事件;◼多个定时器的菊链使得

Windows 7 CDC 串口驱动,GD32

Windows7自带CDC串口类设备的驱动程序文件usbser.sys,所缺的是驱动配置文件usbser.inf文件,将Windows10的usbser.inf文件拷贝到Windows7,注释掉SourceDisksNames和SourceDisksFiles部分就可以作为Windows7的CDC串口类设备通用的驱动配置文件,下文有修改好的usbser.inf文件,拷贝保存即可。适用于所有CDC类设备,不管是哪家的设备,而且安装过一次以后,再插入其它CDC串口类设备都会自动安装。 安装过程首先插入CDC设备,忽略未能成功安装驱动程序错误,打开设备管理器,在对应设备上点击右键,菜单中选择更新驱动

【IAP】STM32和GD32的IAP原理分析、教程、资料整理

文章目录前言一、什么是IAP?二、IAP执行原理(以STM32F10X为例)2.1STM32F10X的储存器映像2.2正常上电的运行流程2.3加入IAP后的Bootloader运行流程2.4IAP过程的跳转(有要点)2.5IAP过程的总结三、YModem协议3.1介绍3.2握手过程(1)起始帧格式:(2)数据帧格式:(3)结束帧格式:四、教程(以STM32F10X的官方IAP例程为例)4.1Bootloader的写入第一步:keil设置MCU内存大小第二步:限制Bootloader位置、程序的大小4.2APP程序的烧写第一步:keil设置APP的烧录位置第二步:APP程序中重设中断向量表地址4

GD32F3x0 USB CDC应用案例

GD32F3x0USBCDC应用本文有点长,描述了从0开始移植驱动到应用的过程和思路准备工作:因项目需求这两天需要做个USB的虚拟COM口发卡器,实现双向通讯,由于功能较为简单我们选择GD32F350来开发。先跑跑官方例程:GD32F3x0_Firmware_Library_V2.2.1\Examples\USBFS\USB_Device\cdc_acm安装GD32USB驱动:USB_Virtual_Com_Port_Driver_v2.0.2.2673我这里采用keilMDK5来开发,keil的安装这里省略。安装GD32的DFP包:https://www.gd32mcu.com/cn/dow

Ethercat学习-GD32以太网学习

文章目录1、GD32F4以太网简介2、以太网模框图简介3、以太网主要模块介绍SMI接口RMII接口与MII接口DMA控制器4、以太网配置流程5、其他1、GD32F4以太网简介GD32F4系列以太网模块包含10/100Mbps以太网MAC,数据的收发都通过DMA进行操作,支持MII(媒体独立接口)与RMII(简化的媒体独立接口)两种与物理层(PHY)通讯的标准接口。2、以太网模框图简介​以太网需要外接一个PHY(以太网芯片)才可以进行通信。与PHY连接的方式有两种,一种是通过MII直接连接,将MII接口化简为RMII接口,然后再与PHY进行连接。另外与PHY相连的还有一个SMI接口(站点管理接口