自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(59)
  • 资源 (30)
  • 收藏
  • 关注

原创 26、STM32 的时钟

参考文章 :http://blog.csdn.net/kevinhg/article/details/17517117关于 STM32 的时钟, 一共有 5 个时钟源 : HSI、HSE、LSI、LSE、PLL1、 HSI :高速内部时钟, RC 振荡器, 频率为 8MHz2、 HSE :高速外部时钟, 可接石英/陶瓷谐振器, 或者接外部时钟源, 频率范围4~16M3、 L

2016-12-11 18:30:24 317

原创 25、USART 的 DMA 模式

在上一篇中介绍了 ringbuffer 方式去实现串口收发数据的无阻塞。这里介绍另外一种实现方式 - DMA 模式,个人感觉使用 DMA 方式在接收数据时不仅更为方便,解析帧协议更为准确(尤其是不定长帧协议),而且占用 CPU 资源也更小。在 ringbuffer 方式下,收发数据都是基于中断实现的,因此在大数据量进行传输时,频繁的进中断会导致系统的性能急剧下降。使用 DMA 模式在整

2016-12-11 17:59:21 1071

原创 24、USART 使用 ringbuffer 实现无阻塞的读写

在使用串口的使用中,由于速率比较低,因此数据的收发都比较占用资源。尤其是数据的输入,因为在程序的执行过程中无法预知到底何时才有数据过来,采用中断的方式去实现接收也有弊端,当需要解析帧协议时需要不断的去判断是否有足够一帧的数据,而且在发送过程中也无法实现无阻塞。从而浪费了大量的 CPU 资源。这里采用一种 ringbuffer 的方式去实现无阻塞的收发,发送数据时只需要数据写入 buff

2016-12-11 17:34:50 2176

原创 23、STM32 上系统精确延时与获取 micro 时间函数的实现(FreeRTOS 中也能移植)

在编程中经常需要精确的延时,或者需要精确的统计一段代码的执行时间,亦或者是需要精确的保证某段代码被调用的频率。比如需要统计某个函数的执行时间,从而判断开销,又比如在飞控中需要精确的保证每隔 2m 调用一次读取传感器的函数,可以使用定时器去实现。在 STM32 平台上,我们可以充分的利用 systick 去实现。static volatile uint32_t sysTickMill

2016-12-11 17:15:46 2972 1

原创 22、FreeRTOS 在 STM32 上的移植

STM32 上可以移植很多优秀的操作系统,有了操作系统之后,第一,可以提高 CPU 的利用率,第二,可以更好的利用多任务,从而实现不同功能模块的分离。这里介绍 FreeRTOS 的移植,FreeRTOS 是一个小型的高效的实时操作系统,移植与使用都比较简单。FreeRTOS 可以去官网下载最新版 https://sourceforge.net/projects/freertos/

2016-12-11 16:29:01 373

原创 21、keil 生成 bin 文件的方法

在 options for target 中的 user 界面Run User Program After Build/Rebuild 选项中, 勾选 Run #1, 并填写如下 :fromelf.exe --bin -o  "[email protected]" "#L"重新编译程序,即可在 obj 目录下得到 bin 文件

2016-12-11 16:21:33 203

原创 7、ARM madplayer 移植

1、编译 libmad 库a  ./configure --host=arm-linux --prefix=/home/soudcard/b  makec  make install2、编译 zlib 库a  修改配置文件 configure    将 AR = ${AR-"ac rc"}  改为  AR = ${AR-"arm-linux-ar rc" } 

2016-12-11 15:57:14 328

原创 6、开发板挂载宿主机的网络文件系统

在开发中,程序一般都是在宿主机上开发,然后放到目标机上运行。在开发过程中程序一般需要经常改动,因此频繁的拷贝程序显得效率特别低下。因此可以使用网络文件系统,将目标机挂载到宿主机上的一个文件目录下,这样在宿主机上编译出来的程序就可以直接在目标机上运行了。1、在宿主机上设置好 nfs 的目录。   打开 /etc/exports 文件, 添加  /home/nfs_share

2016-12-11 12:39:32 269

原创 5、卸载驱动出现 rmmod:chdir(2.6.28.6):No such file or directory 的解决办法

在开发板使用 rmmod 命令卸载驱动时,必须在 /lib/modules 目录下以内核版本号为名称的目录下建立相应的驱动文件,而在开发板上使用友善之比提供的内核和文件系统时,内核目录名与版本号不对,需要使用一下命令重新建立目录。    mkdir -p /lib/modules/`uname -r`    cp xxx.ko /lib/modules/`uname -r`

2016-12-11 12:26:43 758

原创 4、mini2440 uboot 和 linux 内核的编译

uboot_1.1.6的编译需要较低版本的交叉编译器1、交叉编译器的安装a. 将arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2拷贝至虚拟机下,使用tar xjf 命令解压b. 设置系统环境变量, 在 /etc目录下的environment 文件中添加交叉编译器的路径, 假设交叉编译器解压到   了 /tmp 目录中   PATH = “/usr/

2016-12-11 12:21:11 563

原创 3、使用 uboot 给 mini2440 烧录 linux 系统

备注 :需要打开 tftp 工具首先在 u-boot 的命令行查看服务器 IP 和设备 IP1、printenv2、修改服务器 IP   set serverip 192.168.0.13、修改设备 IP, 与服务器在同一个网段   set ipaddr 192.168.0.104、保存环境变量   save1、烧写 bootloader

2016-12-11 12:16:57 432

原创 2、使用 uboot 下载程序到内存并运行

在程序的开发与调试过程中,不需要将程序烧录到 Flash 中, 可以直接通过 uboot 将程序下载到内存中,然后从内存开始运行即可。这里使用 uboot 的 tftp 功能下载1、 打开 tftpd 工具    在 uboot 的命令行输入 tftp 0x30000000   led.bin备注 :将 led.bin 放到 windows 的指定目录下(例如 :d:/),

2016-12-11 12:07:42 1521

原创 16、linux 程序输入时退格键的问题

在程序中经常要与用户进行交互,最简单的就是从命令行获取输入,通常使用 cin 或者 scanf  来获取用户输入信息。但用户有时候会输入错误,想使用退格键删除重新输入时,系统往往会将退格键也当做用户的输入,退格键也会被回显到屏幕上,因此无法实现我们预期的退格删除功能。解决办法如下 :方法一 :在程序中添加如下代码 system("stty erase ^H");  /* 退格键

2016-12-11 12:03:39 1574

原创 15、linux 下默认的头文件路径

在 linux 下编程时, 默认编译器的头文件路径为 /user/include 如果在程序中使用了该路径下的头文件, 直接包含即可, 不需要指定为 /user/include/。例如在程序中使用 #incude , 是使用了 /user/include/stdio.h。由于系统默认的路径不包括  /user/include 下的子目录,因此如果在编程中使用到了 /user/inclu

2016-12-11 11:55:21 833

转载 14、arm 交叉编译器 gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi 的区别

命名规则交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]arch - 体系架构,如ARM,MIPSvendor - 工具链提供商os - 目标操作系统eabi - 嵌入式应用二进制接口(Embedded Application Binary Interface)根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,

2016-12-11 11:44:34 165

原创 13、ubuntu 下设置交叉编译工具链的环境变量

将下载好的交叉编译工具放入到 ubuntu 下的指定目录下解压, 我这里放的是 /opt 目录,使用的是 arm-linux-gcc-3.4.5 版本的交叉编译工具链。解压命令 :tar -xzf arm-linux-gcc-3.4.5.tar.gz    设置系统环境变量,在 /etc/environment 文件中 PATH 的后面添加交叉编译工具链的路径(刚刚解压得到的)   P

2016-12-11 11:18:17 1508

原创 12、ubuntu 与 windows 之间使用 ssh 传输文件的问题

在Windows与 ubuntu 之间使用 SSH 进行文件传输时,如果出现 Windows 可以向 ubuntu 传输,而 ubuntu 不能向 Windows 传输,可以检查一下 windows 下的防火墙是否已经开启了,把防火墙关闭再重试。   如果出现传输文件的速度很慢,可以通过修改 ubuntu 下的配置文件解决 :打开 ubunt 下的 /etc/ssh/sshd_

2016-12-11 11:14:37 308

原创 11、ubuntu 下挂载 U 盘

一般来说,插上 u 盘之后,ubuntu 会自动进行识别。这里以 virtualBox 为例,说明一下如何手动去挂载 u 盘到指定目录  :1、打开 virtualbox 中的 USB 接口     在 virtualbox 的右下方打开 USB 设备,2、查看 U 盘对应的设备号     ls /dev/sd*   在插入 U 盘之前查看一次,插入 U 盘之后在查

2016-12-11 11:06:29 564

原创 10、rpm 包的安装与卸载

在 linux 下很多软件包是 rpm 格式的。   使用 rpm -e name 即可卸载对应的软件包。  使用 rpm -e name --nodeps 强制卸载,忽略所有的依赖包

2016-12-11 11:00:30 219

原创 9、如何安装 ubuntu 光盘镜像里面的安装包

在使用虚拟机去安装 ubuntu、Fedora、Redhat 等 linux 系统时,光盘镜像里面往往会自带很多软件包。如果需要安装的话,可以按照下面的方式 :1、挂载光盘   在虚拟机(这里以 virtualbox 为例)的右下方,把光驱选上。这时一般系统会自动挂载,如果没有挂载成功,可以使用命令行去手动挂载。   ls /dev/cdrom* 查看光驱的设备名称   m

2016-12-11 10:38:04 3314

原创 8、linux 下 /bin、/sbin、/usr/sbin、/usr/bin 目录的区别

1./bin目录   该目录下的命令可以被root与一般账号所使用,由于这些命令在挂接其它文件系统之前就可以使用,所以/bin目录必须和根文件系统在同一个分区中。   /bin目录下常用的命令有:cat、chgrp、chmod、cp、ls、sh、kill、mount、umount、mkdir、[、test等。其中“[”命令就是 test 命令,我们在利用 Busybox 制作根文件

2016-12-11 10:20:14 262

原创 7、linux 下 GCC 与 G++ 编译

在 linux 下编译程序时需要根据不同的开发语言选择对应的编译器,如果使用的是纯 C 语言,则使用 gcc 编译器,默认链接的是 C 库。如果使用的 C++ 语言写的程序,可以使用 g++ 去编译,编译器会去链接 C++ 库。如果想要使用 gcc 去编译 c++ 程序,需要指定链接库,在 gcc 后面添加 -lstdc++ 选项即可。链接时会去找到 /usr/lib/libstdc+

2016-12-11 10:15:33 163

原创 20、基于 STM32 的 SPI 通讯

STM32 的 SPI 通信比较简单,跟其他外设一样,首先进行一系列的配置,然后就可以进行数据收发了。SPI 总线是全双工协议,因此可以同时进行收发,SPI 的通信速率可以高达 20MHz,也可以配置为 DMA 模式。因此是一个很重要的通讯总线。初始化代码如下 :void SPI_Config(void){   SPI_InitTypeDef  SPI_InitStru

2016-12-01 23:01:03 847

原创 19、基于 STM32 的 DS18B20 温度读取

DS18B20 的内部光刻 ROM 中有 64 位序列号, 开始 8 位(28H)是产品类型标号, 接着的 48 位是自身的序列号,最后 8 位是前面 56 位的循环冗余校验码。该传感器可编程为 9、10、11、12 位精度,分别以0.5℃、0.25℃、0.125℃、0.0625℃增量递增,上电默认是 12 位。   12 位的数据转换完之后保存在两个 8 位的 RAM 中, 高字节的前

2016-12-01 22:45:00 9372

原创 18、基于 STM32 的 I2C 时序 - GPIO 模拟方式

STM32 的硬件 I2C 一直存在着一些问题,在使用的过程中容易出现死锁的现象。因此在大多数场合下,我们都会抛弃硬件 I2C,改用 GPIO 模拟的方式去实现。这里通过模拟 I2C 的时序去读写 AT24C02, 从而也能更为深刻的了解 I2C 的时序。 I2C 的时序产生代码如下 :/* SCL 设置为高电平 */void SetSCLHigh(void) { GPIO_Set

2016-12-01 22:34:30 1037 1

原创 17、基于 STM32 的 Flash 操作

STM32 的内部 Flash 除了可以用来烧录程序之外,还可以在程序中进行访问。有两点需要注意 :1、对 Flash 进行操作之前,必须解锁,访问结束必须上锁2、对 Flash 进行写操作时要注意地址,不要跟代码的地址冲突,否则会导致系统运行异常。原因很简单,如果在   程序中将存放代码的 Flash 区域的数据修改了,必然导致程序被修改,从而导致程序运行异常。因此在操作之   

2016-11-30 23:14:24 378

原创 16、STM32 窗口看门狗的使用

窗口看门狗与独立看门狗不同,只能在设定的窗口时间内进行喂狗,不过在复位之前,窗口看门狗可以产生一个中断,因此可以在中断里进行喂狗。使用流程如下 :l、使能窗口看门狗时钟2、中断配置、尽量配置为高优先级3、窗口看门狗配置A、设置预分频 WWDG_SetPrescalerB、设置窗口的上边界值 WWDG_SetWindowValueC、使能窗口看门狗、并设置计数器初值 WWDG

2016-11-30 23:03:13 404

原创 15、STM32 独立看门狗的使用

STM32 内部有两个看门狗,一个独立看门狗,一个窗口看门狗。这里先介绍独立看门狗。           独立看门狗的使用流程如下 :l、独立看门狗配置   /* 使能寄存器访问 :向IWDG_KR 寄存器写入0x5555 */   IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);   /* 设置预分频 :4

2016-11-30 22:39:31 306

原创 14、STM32 CPU 内部温度采集

STM32 的 ADC 通道 16 可以用于采集芯片内部温度,使用方式与常规 ADC 差别不大,多了一个内部温度采集使能。使用流程如下 :1、选择通道ADC_Channel_162、使能内部温度采集 ADC_TempSensorVrefintCmd(ENABLE);3、剩下初始化流程与常规 ADC 采样初始化一致4、温度计算,采用如下公式计算   temp = (1.43

2016-11-30 22:34:30 7083 2

原创 12、STM32 的 RTC 使用

STM32 的 RTC 使用需要注意一下几点 :  必须设置 RTC_CRL 寄存器中的 CNF 位, 使 RTC 进入配置模式后, 才能写入 RTC_PRL、RTC_CNT、RTC_ALR 寄存器。   另外, 对 RTC 任何寄存器的写操作, 都必须在前一次写操作结束后才进行。可以通过查询 RTC_CR 寄存器中的 RTOFF 状态位判断 RTC 寄存器是否处于更新中。仅当 R

2016-11-30 22:29:37 381

原创 10、STM32 的 DAC 转换

STM32 有一旦使能 DACx 通道,相应的 GPIO 引脚就会自动与 DAC 的模拟输出相连。为了避免寄生的干扰和额外的功耗,相应的 GPIO 引脚在初始化之前应该设置为模拟输入模式。DAC 的配置流程如下 :l、时钟设置A、初始化系统时钟B、使能GPIO端口时钟C、使能DAC时钟D、使能端口复用时钟2、GPIO端口设置A、定义端口配置结构体B、设置端口为模拟输

2016-11-30 22:28:16 1250

原创 13、STM32 的低功耗模式

STM32 可以设置为睡眠模式、待机模式等。不同的模式下,开启的外设(仍然能响应的外设)是不同的,并且唤醒的条件也不一样,在实际的应用中,需要根据具体的情况去选择一个合适的低功耗模式。这里简单的介绍一下待机模式 - 深度睡眠模式配置函数如下 :void Sys_Standby(void){   /* 系统低功耗配置为待机模式(深度睡眠模式) */   NVIC_

2016-11-29 22:47:17 427

原创 11、STM32 的 DMA 使用 - ADC 采用 DMA 模式

STM32 的很多外设可以配置为 DMA 模式,可以大大提高效率,减轻 CPU 的负担。例如前面提到过的 ADC 转换,如果采用中断模式,由于 ADC 转换速度快,因此进入中断就很频繁,从而占用 CPU 资源严重,如果采用查询的方式去读取 ADC,在某些要求高速的场合实时性会降低。因此可以采用 DMA 模式进行 ADC 转换。STM32 的 DMA 配置流程如下 :l、时钟设置A、初始化系

2016-11-29 22:23:40 2430

原创 9、STM32 的 ADC 转换器

STM32的ADC转换器是一种12位逐次逼近型的转换器。输入时钟不能超过 14MHz。l、时钟配置A、初始化系统时钟B、使能对应 GPIO 端口时钟、使能 ADC 时钟、使能端口复用时钟。   ADC时钟不能超过14MHz,因此需要进行ADC时钟分频。   RCC_ADCCLKConfig(RCC_PCLK2_Div6);2、GPIO端口初始化   配置管脚为模

2016-11-28 22:39:01 406

原创 8、STM32 CAN 总线的使用

CAN 总线是一种在汽车领域常见的通讯协议总线。STM32 支持 CAN 协议。这里简单的对 STM32 平台上 CAN 总线的使用做一个示例,起到抛砖引玉的作用。首先明确一个概念 :CAN 总线中不是以时钟或者逻辑电平来表示'0'和'1'的,而是采用隐性位和显性位来表示 :l、隐性位与显性位   CAN总线为”隐性”(逻辑1)时, CAN_H 和 CAN_L的电平为2.5V(电位差为0V

2016-11-28 22:25:11 1576

原创 7、STM32 的串口编程(printf 重定向)

在开发过程中,通常需要进行一些必要的 log 输出,在代码的关键地方输出 log 便于我们 DEBUG,也便于跟踪程序的运行状态, 最根本的方法就是通过串口输出。STM32 的串口资源比较丰富, 使用流程如下 :l  配置时钟Ø  初始化系统时钟 SystemInit();Ø  使能串口映射到的GPIO端口时钟    RCC_APB2PeriphClockCmd(RCC

2016-11-27 13:48:50 769

原创 6、STM32 的 PWM 输出

STM32 的定时器除了 TIM6 和 TIM7 之外, 其他的定时器都可以用来产生 PWM 输出。其中高级定时器TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4 路的 PWM 输出,这样STM32 最多可以同时产生 30 路 PWM 输出。   定时器都有对应的 GPIO 端口映射, 不同的映射方式对应不同的端口号,需查阅数据手册。l

2016-11-27 13:41:02 751

原创 5、STM32 定时器的使用

STM32 一共有 11 个定时器, 其中 2 个高级控制定时器, 4 个通用定时器和 2 个基本定时器, 以及 2 个看门狗定时器和 1 个系统滴答定时器(SysTick), 计数器均为 16 位。定时器计数器类型预分频系数DMA请求捕获/比较通道互补输出TIM1向上/向下

2016-11-27 13:36:48 1444

原创 4、STM32 外部中断的使用

STM32 拥有大量的外部中断资源, 可以映射到不同的 GPIO 端口, 使用非常灵活。外部中断的使用流程主要包含时钟使能、GPIO 配置,中断优先级配置,中断服务程序等。这里关于STM32中断优先级的问题,由于STM32的中断优先级具有分不同组, 有抢占优先级与响应优先级, 这里暂时不进行深入的讲解,后面会单独再详细讲解。这里只是示例外部中断的使用流程 1、初始化时钟     在使用

2016-11-27 13:07:48 806

原创 3、STM32 GPIO 基本操作

STM32 GPIO 的操作主要包含以下几个步骤 :1、时钟初始化   时钟初始化包括系统时钟初始化与 GPIO 端口时钟使能。其中初始化系统时钟,有两种方式 :使用SystemInit()函数初始化为 72 MHz。或者根据前面章节讲解的方式自己去配置时钟大小。   使能GPIO端口的时钟, 可以根据数据手册,配置相关寄存器,或者直接使用库函数的方式。   RCC_APB2Per

2016-11-27 12:01:34 924

基于 STM32 的 SPI 通讯

基于 STM32 的 SPI 通信,使用 keil 编译

2016-12-01

基于 STM32 的 DS18B20 程序,包含 ID 访问和直接访问两种方式

基于 STM32 的 DS18B20 程序,有 ID 读取和直接读取两个版本,其中 ID 读取方式可以在总线上挂接多个 DS18B20,通过指定 ID 的方式,从而达到读取指定设备的目的。

2016-12-01

基于 STM32 的 I2C 时序 - 模拟 I2C

基于 STM32 的 I2C 时序,使用 GPIO 模拟的方式实现,稳定可靠。keil 编译

2016-12-01

基于 STM32 的中断嵌套

基于 STM32 的中断嵌套

2016-11-30

基于 STM32 的程序加密

基于 STM32 的程序加密方法,keil 编译

2016-11-30

基于 STM32 的片上 Flash 操作

基于 STM32 的 Flash 操作,keil 编译

2016-11-30

STM32 窗口看门狗的使用

基于 STM32 的窗口看门狗的使用,keil 编译

2016-11-30

STM32 的独立看门狗使用

基于 STM32 的独立看门狗的使用,keil 编译

2016-11-30

STM32 CPU 温度采集

基于 STM32 的 CPU 温度采集程序、keil 编译

2016-11-30

基于 STM32 的 RTC 实时时钟

基于 STM32 的 RTC 实时时钟程序,keil 编译

2016-11-29

基于 STM32 的 DMA 方式 ADC 转换

基于 STM32 的 DMA 模式下的 ADC 转换,keil 编译

2016-11-29

STM32 的 DAC 转换

基于 STM32 的 DAC 转换,keil 编译

2016-11-29

STM32 的 printf 重定向

基于 STM32 平台的 平printf 重定向

2016-11-28

STM32 的 ADC 转换, 中断方式

基于 STM32 平台的 ADC 转换程序, 中断方式

2016-11-28

STM32 的 ADC 转换, 查询方式

基于 STM32 平台的 ADC 转换程序, keil 平台编译

2016-11-28

STM32 的 CAN 总线编程

基于 STM32 平台的 CAN 总线编程

2016-11-28

基于 STM32 的呼吸灯

基于 STM32 的呼吸灯,使用 Keil 编译

2016-11-28

STM32 的 PWM 输出

基于 STM32 平台的 PWM 输出

2016-11-28

STM32 定时器的使用

基于 STM32 的定时器工程文件,keil 4 环境编译

2016-11-27

STM32 外部中断的使用

基于 STM32 平台的外部中断使用,keil 4 平台编译,直接编译即可使用

2016-11-27

1、基于 STM32 的 GPIO 操作

基于 STM32 的 GPIO 操作工程, keil 4 开发环境编译, 直接打开即可编译

2016-11-27

基于 Proteus 的 ATMEGA-16 的 ADC 遥控器程序与仿真

ATMEGA-16 平台的遥控器的接收与发送端程序,发送端通过 ADC 采集8个通道的摇杆数据,然后通过无线串口发送到接收端,接收端进行解帧,根据每个 ADC 通道的数值控制 PPM 的每个对应通道的脉宽值。包含 Proteus 仿真

2016-11-08

基于 Proteus 平台的 Atmega-16 USART 仿真

基于 Proteus 平台的 Atmega-16 USART 仿真,通过虚拟串口工具,可以实现与 windows 下的串口调试工具进行数据交互

2016-11-07

基于 ATMEGA-16 的 PPM 遥控器

基于 Atmega-16 平台的 PPM 信号产生,用于 PPM 遥控器。

2016-11-05

基于 ATMEGA-16 的 PWM 与 Proteus 仿真

基于 ATMEGA-16 Timer 的 PWM 与 Proteus 仿真, 在 ICC AVR 平台开发. 学习 AVR 单片机定时器资源的简单例子,采用定时器的溢出与比较中断方式实现的 PWM

2016-11-04

基于 ATMEGA-16 的 GPIO 小灯程序与 Proteus 仿真

基于 ATMEGA-16 的 GPIO 小灯程序与 Proteus 仿真, 作为 AVR 入门级的小例程

2016-11-04

基于 Linux Socket 和 JSON 的服务器与客户端文件传输

linux 下的 Socket 服务器同时与多个客户端进行文件传输, 其中客户端用 Qt 编写的, 可以在Ubuntu 和 Windows 下运行。服务器代码可以在 ubuntu 下运行, 也可以用交叉编译器编译在 ARM 下运行。命令与数据端口分开处理, 命令的传输使用 Json 格式

2016-11-03

tftpd 工具

tftpd 绿色版本,在嵌入式开发中实用

2016-11-03

SecureCRT 工具

完美破解版 SecureCRT, 配注册机与使用说明

2016-11-02

SSH - SecureShellClient

windows 下的 SSH 工具, 可以很方便的登录到虚拟机, 从而进行 windows 与 虚拟机之间的文件传输

2016-11-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除