自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

unsv29的专栏

一个嵌入式软件工程师的流水账记录...

  • 博客(24)
  • 资源 (37)
  • 收藏
  • 关注

原创 物联网操作系统OS大全

物联网os官网/gitee/github.....

2020-08-09 16:09:15 1680

原创 《跟我一起写Makefile》读书笔记

第二章 关于程序的编译和链接编译时,编译器检查语法,函数和变量是否被声明。编译器把源文件(.c)编译成中间代码文件(.o)。链接时,链接器链接函数和全局变量。链接器会在所有的obj中找寻函数的实现。第三章 Makefile介绍一,Makefile的规则target ... :prerequisites ... command ... ...prerequisites中如果有一个以上的文件比target文件要新的话,comm...

2020-08-17 09:00:47 221

原创 makefile再出发[3]学习makefile的方法?为什么要用makefile 不用cmake?

20200814学习makefile的方法?首先查资料,看看makefile到底咋学...通过查资料,我发现学习makefile最重要的是不要眼高手低。不要试图突击两三天就掌握个七七八八。在网上找个别人的makefile然后看看是咋运行的,这种学习套路大概是不科学的。我现在为什么要用makefile?为啥不用cmake?对于刚入门的来说,makefile看到的事情能清楚一点。cmake更多的是考虑跨平台。还有如果写makefile时没有控制住复杂度,那么很容易变得不可维护。这其实就像C语

2020-08-14 10:25:40 332

原创 armcc基本命令 试一试

另外经测试.O也能变成.HEX,如下:$ fromelf --i32 --output xxx.hex main.o

2020-08-13 12:07:36 2296 1

原创 makefile再出发[2](armcc的一个简单makefile)

这个文章 《嵌入式】基于makefile的STM32编译方法探索》我搜到好几次了。是个比较好的思路。就像文章里面说的,先建立一个mDK的小例子吧。

2020-08-11 13:07:07 713

原创 makefile再出发[1](arm-none-eabi-gcc + git bash编译一个程序)

arm-none-eabi-gcc + git bash里的mingw + 小例子

2020-08-11 08:16:18 513

原创 测试socket之[4]:单网卡双IPsocket 组播测试

发送之前要加上 struct in_addr sin_addrXXX; sin_addrXXX.s_addr = htonl(LWIP_MAKEU32(192, 168, 6, 60)); setsockopt(socket_fd1, IPPROTO_IP, IP_MULTICAST_IF, &sin_addrXXX);为什么这么加?主要是选网卡(俩IP ,另一个IP可以看作虚拟网卡),在...

2020-08-06 11:28:30 438

原创 测试socket之[3]:单网卡双IPsocket udp测试

不同网段和同网段都一样的,下面举例是不同网段的:单片机IP 192.168.6.60, 192.168.8.60【1】fd1 = bind(port:1111, ip:0);【2】fd2 = bind(port:2222, IP:192, 168, 6, 60);【3】fd3 = bind(port:3333, IP:192, 168, 8, 60);那么对于【1】,电脑发送到两个IP+端口1111, 单片机都可以收到。单片机发送到电脑,那么单片机用哪个IP呢?答...

2020-08-06 11:11:46 326

原创 测试socket之[2]:单网卡非端口复用之组播

由于设计的socket的bind 功能是:创建socket并绑定IP和port,所以setsockopt只能放在bind的后面。对于加入和离开组播来讲,用setsockopt针对的不是哪个socket(尽管setsockopt的有一个参数是socket描述符),setsockopt针对的是某个网卡。bind绑定的是端口和某个特定组播地址(当然如果组播地址设置为0那么就是任意组播地址),这样端口和组播地址建立了对应关系。比如这样:【1】fd1 = bind(port:1111, mult.

2020-08-05 12:50:33 288

原创 测试socket之[1]:bind一个同网段非本地地址

20200804这几天设计了socket,设计的socket的bind 功能是:创建socket并绑定IP和port,想测试各种情况。bind 同网段非本地IP地址,那么是可以bind成功的,看看udp_bind(struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port)里面的内容就看出来,没有netif相关的东西。但是udp却无法send成功,因为send之前要选网卡,由于bind一个同网段非本地地址,所以可以找到这个网段对应的网卡,但是

2020-08-04 11:04:38 589

原创 lwip 单网卡双IP 同网段 设置为两个mac,经过试验是不可以都ping 通的。

lwip 单网卡双IP 同网段 设置为两个mac,经过试验是不可以都ping 通的。

2020-08-03 09:01:04 985

转载 STM32之SD卡【写的太好了 转载 】

https://www.cnblogs.com/amanlikethis/p/3757876.html#lab11目录一、SD卡概述  1、定义  2、容量等级  3、SD卡框图  4、SD卡与TF卡的区别二、SD卡内部结构  1、 SD卡内部结构简图  2、 存储阵列结构图  3、Buffer  4、“存储阵列Block”--最小的存储...

2020-08-02 20:41:49 9340 1

原创 为什么转向ubantu?

http://bbs.eeworld.com.cn/thread-1075703-1-1.htmllinux不熟makefile不熟 window开发stm32很熟目前在win10下编译micropython,用mingw64,这是msysgit自带的。我说的micropython是v1.9以后的版本编译大部分都是可以的,比如stm32下面的所有板卡,bare文件 也可以...

2020-08-02 17:59:05 167

原创 micropython开发节点,实现 1+1=2

(1)2018.12.07首次实现用micropython在MDK环境下进行1+1=2的计算。

2020-08-02 17:58:34 346

原创 github pages建立

(1)https://www.jianshu.com/p/60fa8b716abe 这个有个图,如下:--------------------------------------------------------安装nodejs----------------------------------------------------------------------------git...

2020-08-02 17:57:08 242

原创 MBED udp通信相关 2020-07-13 16:01:52

test_igmp_Snd = udp_new();err = udp_bind(test_igmp_Snd, IP_ADDR_ANY, TEST_IGMP_SERVER_PORT);udp_recv(test_igmp_Snd, test_igmp_recCallback, NULL);test_igmp_recCallback(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port.

2020-08-02 17:21:54 244

原创 [转]车小胖谈网络:IP协议

一直纠结于该怎样写我的网络之旅,开始不是很清晰,现在写着写着开始清晰了,那就是用亲爱读者可以懂的语言来阐述技术,有血有肉,而不是冷冰冰技术的堆积。读者里有我远在大洋彼岸的同桌,有初中、高中、大学、研究生的老同学,有一起工作奋斗的同事兼老朋友,有自己的兄弟姐妹,还有默默支持我的陌生的朋友,感谢您们!没有您们的支持,到第三篇就可能放弃了。为了回馈朋友们的支持,决定从网络最基础的元素开始,一点点讲起,如

2020-08-02 17:14:35 1104

原创 F_open 耗费时间为什么这么长?

最近折腾了一阵子fatfs,发现在f_open的时候 耗费时间180ms。看了函数内部,找路径follow_path花费了 100msFS_LOCK相关花了80ms,把FS_LOCK改大改小都是如此。这是啥原因?然后把SD卡格式化了,震惊!f_open稳定的耗费了5ms。无语了!仔细想想也有道理!---------------2019.03.19 看样子是碎...

2020-08-02 17:08:08 365 1

原创 mpy移植到KEIL 开发节点

(0) ubantu编译 V1.10得 任何例子 都可以成功(1)WIN10下 下载mp1.10 直接编译 bare-arm,可以编译成功。看样子估计是没有用到MPY-CROSS编译器。那么先把这个例子移植到STM32中。现移植bare吧。 弄了几个小时V1.10没有成功。于是看以前得文章,https://blog.csdn.net/unsv29/article/details...

2020-08-02 17:05:55 176

原创 mpy进展from 20190824

20190823之前(1)编译在ubantu下进行(2)选择1.9.4版本。这应该是最新的release版本,并且dcexpert 分享的帖子[分享] 在MicroPython中添加外部C模块的方法里面的链接:https://github.com/micropython/micropython/blob/master/docs/develop/cmodules.rst,这个文档的例子应该可...

2020-08-02 17:03:18 164

原创 lwip心得-无法connnect原因

20190929(1)在试验tcp echo client的过程中发现, connect之后再也无法connect了。查看返回值发现原因是端口已经被占用了。所以一旦connect之后就要通过写代码进行tcp_close(2)在试验tcp echo client的过程中发现,首次就无法connnect成功,原因是以太网硬件相当于没有初始化完毕,就是我那个检测link up 或者lin...

2020-08-02 17:00:55 1757

原创 IGMP小结(2)

20190831以前写过一个小结关于LWIP的IGMP阶段性小结。这次呢,当然希望更深入一些。(1)在lwipopts.h里面加上#define LWIP_IGMP 1#define LWIP_RAND lwip_rand然后建立一个lwip_rand函数(2)添加igmp_init函数(3)添加if ((localt...

2020-08-02 16:58:06 679

原创 mqtt-onenet 又开始,用网络助手 发送16进制 模拟 MQTT simulate device -v1.0.7

又开始了,计划3个月!先看视频《MQTT报文详解操作手把手》里面说:第一步看样子得注册ONENET 并且在上面搞1个或几个设备。在电脑网页上面弄。注册完毕,先不实名。MQTT物联网套件,我一直以为是开发板呢?我手里可没有开发板,差点选页面提到的旧版的mqtt。鼓捣半天新版的没弄明白。还是先弄旧版吧。...

2020-08-02 16:56:44 529

原创 lua探索之路(1)

又开始了lua的探索,记不清是什么原因让我开始这次探索的。客观存在的条件是:目前网上lua的资料和前几年比更加丰富了。我的目标是用lua在单片机上独立编程,包括操作一些接口。我曾经问过一个写os的大牛,你是怎么写出来os的?他说:“也不难,多深入搞点项目就拉通了”。然后他提到:他写这个os之前阅读过别的os源码。那么我搞这个lua也要参考一些lua源码了,包括:elua(官网) https://github.com/eluanodemcu官网 https://github.com...

2020-08-02 16:54:54 109

W5300勘误表.rar

W5300勘误表.rar

2023-09-18

STM32裸机版TCP客户端收发数据试验-基于lwip协议

这个例子讲的很清楚。

2023-08-10

STM32的TCP服务器收发数据试验

STM32的TCP服务器收发数据试验,用的LWIP协议,讲的比较清晰。

2023-08-10

STM32的lwip的TCP与RS485双向数据透明传输例子,是裸机的

感觉帮助不小,所以传上来。STM32的lwip的TCP与RS485双向数据透明传输例子,是裸机的。

2023-08-10

STM32F103 HAL入门

STM32F103 HAL入门

2023-03-05

CAN电路总结2.doc

CAN电路总结2.doc

2021-07-07

CAN电路总结.doc

CAN电路分析防浪涌静电等

2021-07-07

emqxKey-emqx配置的小例子

emqx配置的小例子

2021-03-11

startup_armv7-m.7z

Specifying stack and heap using the scatter file The ARM C library provides multiple implementations of the function __user_setup_stackheap(), and can select the correct one for you automatically from information given in a scatter file. To select the two region memory model, define two special execution regions in your scatter file named ARM_LIB_HEAP and ARM_LIB_STACK. Both regions have the EMPTY attribute. This causes the library to select the non-default implementation of __user_setup_stackheap() that uses the value of the symbols

2020-02-09

ARM系列处理器应用技术完全手册.pdf

最近研究ARM的底层 汇编 以及分散加载等知识,感觉这本书可以作为参考,分享给大家。。。。 希望给需要的人一点帮助吧 希望能用得上

2020-02-05

ARM V7 体系结构参考手册-英文.7z

ARMv7-M Architecture Reference Manual Copyright © 2006-2008, 2010 ARM Limited. All rights reserved. Release Information The following changes have been made to this document.

2020-02-05

从零开始使用CubeMX创建以太网工程.7z

在前面一篇文章中,介绍了如何使用 CubeMX来建立一个简单的 TCPEchoserver工程。但是在新建 CubeMX项目时,是通 过直接选择 ST的开发板的方式实现的。对于大多数实际的开发场景,可能并不是在 ST的开发板上进行的,所以在这篇文章 中,我将介绍如何从零开始建立一个以太网工程。 今年 ST推出的 Nucleo-144板子上集成了以太网接口

2020-02-05

周立功单片机:分散加载文件浅释.pdf

有时候用户希望将不同代码放在不同存储空间,也就是通过编译器生成的映像文件需要 包含多个域,每个域在加载和运行时可以有不同的地址。要生成这样的映像文件,必须通过 某种方式告知编译器相关的地址映射关系 2 基础知识 2.1 基本概念 要了解分散加载文件前首先需要对以下各个概念进行了解,可参考程序清单2.1。  Code:为程序代码部分;  RO-Data:表示程序定义的

2020-02-05

STM32简单工程-分析启动代码-最终为分析分散加载工程.7z

搞了一个STM32最简单的工程来分析启动代码,这是分析分散加载之前必要的做的。 文章https://blog.csdn.net/unsv29/article/details/104150330

2020-02-02

CAN总线位定时和同步的研究与设计.pdf

CAN总线位定时和同步的研究与设计.pdf 网上找的资料哈 感觉还行 不负责版权哈

2018-05-15

CAN-bus_网络拓扑结构和传输介质.pdf

CAN-bus_网络拓扑结构和传输介质 对传输介质进行介绍 网上找的 不负责版权哈

2018-05-15

stm32 自检程序

STM32 自检程序 自检作为启动前的重要准备工作 可以作为安全产品的参考资料

2018-05-15

VB6 串口双机 通信 mscomm

一个VB6的 mscomm 通信例子 有需要的可以看看 希望不会失望

2018-05-12

VB6 绘制曲线

找了好久 分享一个不错的资源 需要的可以试试看 希望不会失望

2018-05-12

VB6 自动缩放窗体内控件

VB6 自动缩放窗体内控件 这个我在网上找了好久 终于找到一个不错的 分享出来

2018-05-12

micropython-1.3.6 源代码

MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

2017-11-12

micropython-1.2.zip源代码

MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems 含有STM32等例子

2017-11-12

基于RT-Thread的 STM32F103的FPT服务器 源码

找了好久才找的 stm32的FTP简单例子,注释清晰,感觉是比较好的例子。 可以作为FTP入门。

2017-10-25

Python网络数据采集英文 完整清晰版

python应用范围很广。 Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。 这里提供高清完整PDF版本。

2017-10-25

STM32源程序大全

STM32F 源程序 简单例子 里面有30个例子。 对初学者肯定有帮助。 注释很清晰哦~

2017-10-22

STM32F4 I2C通信例子 例程

简洁清晰的例程: /*********************************************************************** º¯ÊýÃû³Æ£ºI2C_Test(void) ¹¦ ÄÜ£º²âÊÔEEPROM ÊäÈë²ÎÊý£º Êä³ö²ÎÊý£º ±àдʱ¼ä£º2012.11.22 ±à д ÈË£º ×¢ Ò⣺ÏÈÏòEEPROMдָ¶¨Êý¾Ý£¬È»ºóÔÙ¶Á³öÀ´£¬×îºóͨ¹ýRS232·¢Ë͵½µçÄÔÉÏ£¬ ÒÔÑéÖ¤¶ÁдÊÇ·ñÕýÈ· ***********************************************************************/ void I2C_Test(void) { unsigned int i = 0; unsigned char WriteBuffer[256]; unsigned char ReadBuffer[256]; for(i = 0;i < 256;i ++)//³õʼ»¯´ýдÊý¾ÝÇø { WriteBuffer[i] = i; } I2C_Write(I2C1,ADDR_24LC02,0,WriteBuffer,sizeof(WriteBuffer)); //ÏòEEPROMдÊý¾Ý I2C_Read(I2C1,ADDR_24LC02,0,ReadBuffer,sizeof(WriteBuffer)); //ÏòEEPROM¶ÁÊý¾Ý RS232_Send_Data(ReadBuffer,256); //ͨRS232½«¶Áµ½µÄÊý¾Ý·¢³öÈ¥ }

2017-10-22

STM32F4 的CAN1 CAN2 双CAN收发例子

最简单清晰的例子,主架构如下: int main(void) { /* ST固件库中的启动文件已经执行了 SystemInit() 函数,该函数在 system_stm32f4xx.c 文件,主要功能是 配置CPU系统的时钟,内部Flash访问时序,配置FSMC用于外部SRAM等。 */ NVIC_Configuration(); CAN1_Configuration(); CAN2_Configuration(); while(1) { if(can1_rec_flag == 1) //如果CAN1接收到了一帧数据 { can1_rec_flag = 0; CAN1_WriteData(0x18412345); //以ID为 0x18412345向CAN上发送数据 } if(can2_rec_flag == 1) //如果CAN1接收到了一帧数据 { can2_rec_flag = 0; CAN2_WriteData(0x18412345); //以ID为 0x18412345向CAN上发送数据 } } }

2017-10-22

STM32F4 的16通道ADC采集例程

STM32F4 的16通道ADC采集例程,注释清晰, /**************************************************************************** PCLK2 = HCLK / 2 下面选择的是2分频 ADCCLK = PCLK2 /8 = HCLK / 8 = 168 / 8 = 21M ADC采样频率: Sampling Time + Conversion Time = 480 + 12 cycles = 492cyc Conversion Time = 21MHz / 492cyc = 42.6ksps. *****************************************************************************/ /* ADC Common 配置 ----------------------------------------------------------*/ ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent; ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2; ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles; ADC_CommonInit(&ADC;_CommonInitStructure);

2017-10-22

RTX_STM32F1 +os

网上搜到的资源 还可以 分享出来

2016-03-11

uCOS-II-V2.91 MDK STM32

uCOS-II-V2.91 是个很稳定的代码。用于SMT32的开发。获得相关认证。

2016-03-11

STM32F+ RT-Thread工程源码实验

STM32F+ RT-Thread工程源码实验 经验证可以连续稳定运行,希望物有所值,贡献出来

2016-03-11

CooCox STM32 OS

CooCox STM32 OS 适合于入门人员 解释较为详细

2016-03-11

rtx_stm32_mdk

rtx_stm32_mdk, 适用于STM32芯片, 属于入门资料,可通过软仿真运行起来。增强开发者的信心

2016-03-11

基于Lua脚本语言的嵌入式UART通信方案设计

基于Lua脚本语言的嵌入式UART通信方案设计

2016-01-22

Keil的关键字using与寄存器组的切换

早年学习单片机的时候,自己总结的using关键字的应用。现在尽管编程用不到这个关键字,但是了解一下还是很有好处的

2016-01-21

LUA基础教程

这本书的第六章名字叫做“脚本,用还是不用” 讲述了脚本的使用的意义? 脚本的简单实例 脚本的堆栈 总之是重要而基础的知识。 很有价值 国外作者不糊弄

2015-12-02

CANopen协议栈源代码和说明文件

MODULE: MAIN - canopen Encoder CONTAINS: CANopen encoder implementation COPYRIGHT: Embedded Systems Academy, Inc. 2003. All rights reserved. www.canopen.com This software was written in accordance to the guidelines at www.esacademy.com/software/softwarestyleguide.pdf DISCLAIM: Read and understand our disclaimer before using this code! www.esacademy.com/disclaim.htm LICENSE: Users that have purchased a license for PCANopenMagic may use this code in commercial projects. Otherwise only educational use is acceptable. VERSION: 1.00, Pf/Aa/Ck 28-MAY-03

2012-11-30

CAN错误计数规则

CAN2.0B(Active)规范的错误计数器的计数规则 CAN 控制器错误处理 各种CAN错误帧的描述 CAN错误帧界定

2012-01-05

LCD12864 源码 和 仿真proteus(本人原创)

/************************ 作者:Steven Lian 完成时间:2009Feb24 程序功能: 见Proteus仿真效果 程序说明:本程序在仿真软件Proteus上通过! 若要在实际硬件上运行,部分参数可能要修改! *******************************/ /* -------------------------------------------- 作者邮箱:[email protected] QQ:33002609 如若对本工程进行转发,请勿对本程序进行任何的修改! 多谢尊重本人劳动成果............. 声明:由于作者早期学单片机水平特别有限,因此本程序很多地方处理可能不够合理。 如阅读本程序对您造成心情不愉快,本作者不负任何法律或民事责任。 本程序作者允许将本程序用于商业以外的目的。特别是对初学者建立学习的信心之用!!!!! 如若对本工程进行转发,请勿对本程序进行任何的修改,否则就是侵犯了作者的知识产权!! 请在阅读本程序24小时之内将本程序删除,保护作者的版权............................. ----------------- 2011.MAY.05.19 */

2011-06-08

51波特率初值计算----------让你计算不出错

51波特率初值计算 用于计算波特率 很方便 关键是自己算可能算错啊

2010-04-12

空空如也

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

TA关注的人

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