草庐IT

STM32与FPGA之间的SPI通讯

全部标签

swift - Swift 和 Go 之间的 Zlib 压缩

我的Swift应用程序与用Go编写的服务器通信。我希望使用Zlib压缩传输的数据,但压缩结果似乎与Swift和Go不同。这是Go版本:sourceString:="A-t-ellebesoind'autrespreuves?Acceptez-lapourleplaisir.J'aitantfaitquedelacueillir,Etc'estpresqueunefleur-des-veuves."//Compressionvarbbytes.Bufferwriter:=zlib.NewWriter(&b)writer.Write([]byte(sourceString))writer.

go - Ragel 转换 Action 和状态 Action 之间的区别

状态机、术语和工具对我来说都是新的,尽管我最近一直在尝试使用各种在线资源来了解它们。这开始于我想在Ragel和Go中构建一个比正则表达式更快的解析器。我对Rageldocs的第3章感到困惑其中涵盖了操作。我不清楚与状态转换相关的操作与状态本身之间的区别。这些示例只有状态嵌入操作有错误,所以我不确定您何时会使用to和from运算符。我做了一个简单的例子:packagemainimport("fmt")%%machinescanner;%%{actionfooStart{fmt.Println("foostart")}actionfooEnd{fmt.Println("fooend")}a

http - 文件服务器不会提供超过 32 KB 的文件

我有一个在docker容器中运行的go程序。我已将其设置为当您转到localhost:8080(程序运行的端口)时,它会提供使用swagger-ui创建的文档文件。显示index.html文件,并在该文件中导入一个css文件、一个png文件和两个javascript文件。png被正确导入(只有628字节);然而,其他三个文件没有得到正确的服务(它们都是几百KB)。我认为问题是它们太大了,就好像我删除了部分文件以使它们小于32KB,它们被正确地提供了。不过,我不确定如何增加此文件限制。我查看了我所有的代码和大量的http包,想看看这个硬限制可能设置在哪里,但在任何地方都找不到。这是创建我

教你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之上,使用提供系统调用完成了多任务编程。目录概念

【FPGA基础篇】Xilinx FIFO详细解析

FIFO官方手册要点类型Reset写操作满标志写操作时序分析读操作空信号读操作时序分析StandardReadFirst-WordFall-Through同时读写时序分析握手信号ProgrammableFlagsDataCountsNon-symmetricAspectRatiosFIFO作为FPGA岗位求职过程中最常被问到的基础知识点,也是项目中最常被使用到的IP,其意义是非常重要的。本文基于对FIFOGenerator的Xilinx官方手册的阅读与总结,汇总主要知识点如下:类型FIFO的类型区分主要根据FIFO在实现时利用的是芯片中的哪些资源,其分类主要有以下四种:shiftregiste

FPGA----IP核cordic使用

之前说过,使用IP核要先百度,然后看文档,然后再百度最后使用。本篇文章以cordIC核的sin、cos来进行实验(全网最详教程)。1、定点数、浮点数、反码、补码首先要明确这几个词的概念。废话不多说,直接上例子:采用32位的有符号定点数表示方法,第一位表示符号位(0是正数,1是负数),因此还剩31个位置来表示数据,具体整数部分与小数部分是几位,看自己设定。我们下面假设整数部分2位(因为-pi~pi=-3.14~3.14,2位可以表示3),29位表示小数。Exp1:①1.5=1+0.5=>0(符号位)_01(整数位)_0.5*2^29(小数位)=0(符号位)_01(整数位)_1,0000,0000

memory - 使用 Go 在主机之间共享变量

我有一个用golang编写的应用程序,它会将基本数据加载到全局变量中,这样可以使应用程序响应速度快,并导出一个http接口(interface)来在用户对数据库进行更改时更新变量。但是我部署了另一台服务器,并使用了代理。出现了一个问题,当用户向更新url发送http请求时,它会将流量加载到其中一台服务器。因此该服务器更新此var,但其他服务器不更新。比如utils.go:packageutilsvarBasicDatasmap[string]*MyModelfuncUpdateVar(){//dosomework}funcPreLoadVar(){//preloaddatatobasi

go - 使用 gorethink 在查询之间创建

如何将这个rethinkdb查询转换成gorethink查询r.db("arkinventory").table("reportsdata").between(newDate("2012-08-13T23:32:49.923Z"),newDate("2013-08-13T23:32:49.923Z"),{index:"updated_at"})我试过了.Filter(func(rowr.Term)r.Term{返回row.Between(r.Time(2014,8,12,'Z'),r.Time(2014,8,12,'Z'),r.BetweenOpts{Index:"updated_at

go - 集群中 n 个 Web 服务器之间的文件同步

Web集群中有n个节点。文件可以上传到任何节点,然后必须分发到每个其他节点。这种分布不必在事务中发生(事实上它不能,分布式事务不能扩展)并且一些延迟是可以接受的,尽管必须是最小的。可以任意解决冲突(通常最后写入获胜),前提是解决方案也分发给所有节点,以便最终所有节点都具有相同的文件集。可以动态添加和删除节点,而无需重新配置现有节点。必须没有单点故障,也不需要额外的盒子来解决这个问题(比如RabbitMQ)我正在考虑使用consul.io进行动态配置,以便每个节点都可以引用consul来确定其他可用的节点,并编写一个守护进程(Golang)来监视相关文件夹并使用其他节点进行通信零MQ。虽