草庐IT

QFN20封装的STM8

全部标签

教你STM32做USB鼠标、键盘

使用CubeMX软件傻瓜式的配置,一键生成USB的HID驱动。一、USB鼠标1、CubeMX配置①、选择相对应的芯片 ②、配置时钟和Debug和debug   ③、配置USB  ④、生成代码         最好把这个也勾上,勾上以后每个外设配置不再都给你塞到main.c里,而是建一个.c.h,这样感觉舒服多了2、编写应用层代码        USB协议还是挺复杂的,原理和底层我也搞不清楚,这东西也不是看几篇文章学个一两天就能搞明白的,我写这个也主要是为了好玩,没有深层去理解。我们用的鼠标主要就四个属性:键位(左键、右键、中键),左右移动、上下移动、滑轮这四个属性用一个长度为4的数组一并包含进

STM32+EC20实现4G无线通信

EC20是一款集成度非常高的4G无线通信模块,支持多种常见通信频段,能满足几乎所有的M2M(MachinetoMachine)应用需求。模块支持TCP/UDP/FTP等一众网络协议,内置多星座高精度定位GNSS接收机,快速提供准确的经纬度信息,UART接口提供AT命令控制和数据传输。物联网很多的网关设备因需要会安装在有线网络不易布到线的地方,而有些网关则需要跟着运输工具一起移动,那么就需要产品实现与上位机服务器进行无线通信,而4G的无线通信模块就提供了一种非常便利的实现。本例使用了FreeRTOS作为实时操作系统,嵌入式代码运行在FreeRTOS之上,使用提供系统调用完成了多任务编程。目录概念

uni-app 使用v-model封装picker组件和自定义样式

1、v-model封装picker组件(1)封装组件myPicker.vue {{currentValue||placeholoder}} exportdefault{ name:"myPicker", props:{ value:String|Number, options:Array, rangeKey:{ type:String, default:"label" }, rangeValue:{ type:String, default:"value" }, placeholoder:{ type:String,

xml - 如何通过 XSD 中的模式定义 ID 范围 (T1..T20)?

我需要为轨道IDT1、T2等创建一个模式,并且想限制到T20。但如果我遵循模式,它也允许T99。你知道如何解决这个问题吗? 最佳答案 以下XSD将允许size具有T1、T2、T3等值T20: 关于xml-如何通过XSD中的模式定义ID范围(T1..T20)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/39239652/

STM32-GPIO数码管动态显示

目录一、数码管原理1、LED数码管的结构2、LED数码管工作原理3、数码管动态显示1)动态显示的概念2)动态显示的接口二、代码的实现三、仿真结果展示 本篇文章将继续进一步了解GPIO外设输出模式一、数码管原理知道这一部分的朋友可以直接点击目录部分跳过这段跳过,这里介绍一下数码管的知识1、LED数码管的结构不管在嵌入式STM32中还是在单片机51中,我们经常采用LED数码管来显示我们系统的状态、运算结果等各种信息,LED数码管是机器和人对话的一种重要的输出设备。单个LED数码管的外形和内部结构如上图所示。LED数码管由8个发光二极管组成,通过不同的发光字段组合可以显示数字(0~9)、字符(A~F

ruby - 如果还没有,是否有用于将对象封装在数组中的 Ruby 习惯用法?

我正在使用一个外部API来交换XML消息。所以我使用了很多Hash#from_xml。但是,#from_xml仅对数组中的重复元素进行编码。这是有道理的,但是当我试图遍历只出现一次的可重复元素时它会中断。例如:ABC-123DEF-456XYZ-789效果很好,因为:my_hash=Hash.from_xml(xmlstring)["Stuff"]将包含3个SKU,因此我可以:my_hash["Stuff"].eachdo|sku|#processtheskuend但是这个XML失败了:XYZ-789因为myhash['SKU']是哈希,而不是数组。我现在必须这样做:my_hash['

stm32-DS1302时钟模块驱动

DS1302是时钟芯片1.DS1302芯片简介DS1302的寄存器地址定义如下: 单字节读写时序如下图,均为上升沿触发: 由于DS1302时钟芯片不是常用的SPI协议,与SPI协议很像,所以需要初始化普通GPIO口手工实现该协议通信。2.cubemx设置设置分别连接DS1302的CE、SCLK、Data口的GPIO,PB8\PB9\PB10:3.keil开发打开gpio.h文件,定义结构体和预处理:#defineW_SECOND0x80#defineW_MINUTE0x82#defineW_HOUR0x84#defineW_DAY0x86#defineW_MONTH0x88#defineW_W

微信小程序封装组件

微信小程序封装组件前言一、封装组件的意思二、使用步骤第一步第二步前言在日常开发中,有页面之间有很多相似的组件,我们可以对其相似的代码块进行封装,进行复用一、封装组件的意思高内聚性,组建功能必须是完整的,如我要实现下拉菜单功能,那在下拉菜单这个组件中,就把下拉菜单所需要的所有功能全部实现。低耦合度代码独立不会和项目中的其他代码发生冲突。在实际工程中,我们经常会涉及到团队协作,传统按照业务线去编写代码的方式,就很容易相互冲突,所以运用组件化方式就可大大避免这种冲突的存在、每一个组件都有子集清晰的职责,完整的功能,较低的耦合便于单元测试和重复利用。标记鲜明,容易维护组件化后,我们只需要对对应的组件进

iphone - 如何获取 RSS 提要中的下 20 个项目?

我已经使用NSXMLParser类创建了一个RSS解析器。提要的项目数为20。我想知道如何从提要中获取接下来的20项?如果我将相同的url添加到google阅读器,它会获取很多项目并在我向下滚动时继续。有没有什么特别的方法可以从RSS中获取接下来的20个项目?以呆伯特博客的这个提要为例。feed://feeds.feedburner.com/typepad/ihdT?format=xml 最佳答案 可能值得一提的是,wordpress的内置提要生成器包括分页功能。您可以使用“分页”参数。例如:#Mostrecentposts:"ht

xml - 封装的签名究竟改变了什么?

如果我想用封装的签名对下一个XML代码进行签名:textnode然后签名XML代码在签名的XML代码中发生,如下所示:textnode...Notice:nolinebreaknorsinglecharacterisaddedoutsideSignatureelementsincethatwouldinvalidatethesignature.XML封装的签名代码包含一个,它指定了代码必须进行的修改,严格来说无论是在签名还是验证过程中都会进行修改。是下一个:在W3C网站(官方文档)中,上面的表达式与下面的表达式进行了比较。在这两种情况下,必须产生相同的输出。count(ancestor