自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (4)
  • 收藏
  • 关注

原创 Windows环境下CubeMX+VScode+Gcc+OpenOCD开发STM32环境搭建

为啥要这么麻烦嘛,这个不解释,生命在于折腾,相信很多人都在折腾,也很多人去百度过,按百度的教程估计还是有很多人不会弄,所以写这篇教程为那些还没有折腾成功的砖工提供点线索。 VScode现在真的很强大,界面跟配色都是一流,再加个各种强大的插件,使VScode越来越成为万能的IDE,可以开发各种语言。这里不多说,VScode相信绝大部分的人都会安装使用,就不再重复了。...

2019-09-08 01:13:07 6780 5

原创 STM32F0除法计算引起的485丢包问题

前些天在调试STM32F042的Modbus程序,用的是中断接收+Systick超时判断包接收完成,波特率是115200。调试发现丢包很严重,三分一左右的丢包率。用MDK调试发现是串口溢出中断了,造成串口溢出,无非是接收中断来不及把RDR的数据取走,又收到下一个数据,引起数据的溢出。首先是考虑到中断优先级的问题,怀疑串口的中断优先级低,中断不能及时响应。修改串口中断为最高优先级,...

2019-08-21 12:25:03 1834

原创 再写TIMER+DMA驱动GPIO

早两年前写过用DMA直接驱动GPIO的文章,当时写的只是比较原理性的,没有实例。最近在用到单线总线,上了RTOS,为了提高效率,减少内核的浪费,就想到用TIMER+DMA+GPIO去输出单线总线时序。上图是单线总线的时序,常规的方法就直接控制IO输出,电平的间隔用延时去控制,代码如下:void SC50X0B_SDA(unsigned char data) { unsig...

2018-10-13 00:52:04 4263 8

原创 物联网前端后台1——一条硬件狗的学习历程

距上次写MQTT的文章,不知不觉已经过了三个月了,本来打算写自己搭建MQTT Borker的,但这方面的资料只要一百度都有,难度也不大,又加上项目比较忙,一直没时间写文章。从上个月开始断断续续学习Node.js慢慢搭建自己的前端跟后台程序。其实在7月份的时候就接触到Node.js,之前一直都有想法来搭建属于一个属于自己的物联网平台,尝试过后用C++或者C#来搭建。但对这两种语言都不是太熟悉,还要学

2017-12-07 08:41:11 6912 1

原创 物联网核心之MQTT移植

在上一篇文章中,只是讲了MQTT的主要内容,至于怎么移植到STM32上,怎么使用才是最重要的关键。这里使用的平台是RT8711的WIFI SOC,使用的LWIP跟FreeRTOS,移植使用跟STM32+LWIP是没什么区别的。   先在Github上找到Eclipse的开源MQTT客户端程序https://github.com/eclipse/paho.mqtt.embedded-c.

2017-09-11 23:01:13 16536 10

原创 造实用个性的Log输出宏

我们在调试嵌入式程序的时候,用IDE+调试器是最直接的方式,但是很多时候我们还需要用串口输出来打印一些Debug的信息,来帮助我们调试。串口调试最简单的方式的话,最简单就是用printf来打印。但是只有Printf不能很好的控制输出的信息,或者让代码变得很臃肿。我们就用宏来封装下Printf,让它更好的使用,更加便利。这里给大家分享一个我在别人基础再改进的Log宏代码。

2017-08-30 21:55:11 1250

原创 物联网核心之MQTT(一)

物联网核心之MQTT(一)       MQTT,目前物联网的最主要的协议,基本所有收费的云平台都是基于MQTT协议,比如机智云,和所有的开放云平台比如中国移动的oneNet、百度的云平台也都支持MQTT的接入。虽然MQTT很火,但是目前对MQTT的很少,尤其是在如何移植到嵌入式上来。大部分的平台商的做法都是跟模块商合作把MQTT协议集成到WiFi模块跟GPRS模块里面,捆绑一销售,不让用

2017-08-23 00:28:39 17436 6

原创 外部SRAM实验,让STM32的外部SRAM操作跟内部SRAM一样

前几天看到论坛有人在问这个问题,我特意去做了这个实验,这样用外部SRAM就跟用内部SRAM一样,不用自己去申请内存,也不用考虑什么内存地址,一切让编译器自己去解决。        废话不多说,我直接拿原子哥的战舰开发板库函数版的外部SRAM实验来修改。在库函数的system_stm32f10x.c这个初始化文件当中其实就已经有外部SRAM的初始化,我们只要增加“#define DATA_I

2015-03-22 08:55:49 4012

原创 用DMA直接驱动GPIO,实现GPIO最高输出速率

先上图:STM32F303芯片,72M的主频可以看到GPIO的达到了14.4M的翻转速率,      再来上代码:RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);GPIOC->MODER |= 0x55555555;GPIOC->OSPEEDR |= 0xFFFFFFF;GPIOC->PUPDR |= 0x55555

2015-03-22 08:54:20 3395 1

原创 ARM9/ARM11裸机开发笔记1之MDK开发环境和点亮LED

很多从单片机或者从CM3转到ARM9/ARM11的时候,一开始就讲得是Uboot,Linux,然后就是什么QT等高级玩意,不像单片机有什么裸机开发的概念,的确,这些高级ARM本来就是用来跑系统,谁用来它做裸机开发呢。但是如果我们要更好了解ARM的工作原理,,尤其是想进阶嵌入式中最难的一层,驱动层的话,甚至想把其它的非Linux系统移植到ARM9/ARM11上。我们就无法避免要跟ARM跟底层的寄存器

2015-03-22 08:52:39 1581

原创 STM32中的main函数入口

昨天在openedv.com论坛上看到别人STM32的启动文件的详解,里面在讨论到说到是不是可以修改main函数里,_main是不是我们C语言的main函数的入口。其实启动文件里我们只是看到很小一部分的代码很难回答这些问题,我于是反汇编了STM32 的AXF文件,给出了一些解答,如下:      为了让大家更清楚的知道STM32是怎么启动的。这里用到IDA64这个反汇编的利器来找反一下ST

2014-12-29 22:10:06 7150

原创 Microsoft .NET Micro Framework移植开发笔记2之点灯神话

写完HelloWorld后,开始进入GPIO的操作,无论是拿到任何的嵌入式的板子,第一件事情就是点亮LED。MF也是这里开始,废话不多说,直接新建VS2010的MF工程。要想点亮LED,就是要操作GPIO,要操作GPIO口就要初始,MF也是一样。在Program.cs的Main函数加入初始化 OutputPort led0 = new OutputPort((Cpu.Pin)21, false);

2014-12-28 22:42:40 561

原创 Microsoft .NET Micro Framework移植开发笔记1

今天一早收到原子哥赠送的战舰开发板,心情甚是激动,趋上班的时候,简单的移植下.net MicroFramework到战舰开发板上,带大家进入.net MicroFramework世界里。废话不说,直接上固件。     固件是bin文件,玩过STM32的人都知道怎么烧固件。这里使用战舰了UART2做为调试口(MF的默认调试口为UART1,战舰的UART1用了CH340芯片,如果要用话,连同USB

2014-12-28 22:41:45 1113

原创 F3不能用位带操作GPIO之原由

最近用到STM32F303,在修改IO的时候,觉得用库操作太麻烦了,要自己一个一个修改,用宏定义也不解决,自然就会想到用位带操作。查M4的手册知道M4也是支持位带操作,F3系列也是属于M4内核,而且在405也是用位带操作,觉得F303也是一样可以做位带操作。直接先修改一个IO,调试却发现在,IO电平始终没有变化。查IO,初始化没有问题。再查位带宏定义:#define BITBAND(addr,

2014-11-04 09:47:45 612 1

原创 .NET Micro Framework USB移植(下)

接上文,USB已经正常使用,但是怎么自定义USB的相关描述,这自然是跟USB底层相关。MF的移植目前还没有多少的教程,大部分都是阅读MF的源码来摸索,这里用到Source Insight这个强大的工具来托管整个MF的源码,以便检索代码中的关键字。这里用设设备名iMXS_a7e70ea2中的a7e70ea2做为关键词,检索出来下面的文件都包含关键词。再查TinyCLR.proj文

2014-10-09 13:04:55 669

原创 .NET Micro Framework USB移植(上)

USB做为现在最重要的通信接口之一,MF的USB移植也是很重要的一步,这样就可以摆脱串口通过USB口来显示MF的DEBUG信息和通过USB口来进行MF托管代码的部署。        移植USB之前,对USB的底层基本没有多少认识,完全靠自己摸着走。MF自带的代码中已经有USB的底层代码,但是不知道完整与否。直接用MF自带的STM32Samp做基础进行移植。修改STM32Samp中的plat

2014-10-09 09:50:23 672

原创 Altium Designer图文安装教程

Altium Designer图文安装教程AD的安装比较其它的软件安装来说已经是再简单不过了,基本上就是一路按Next就可以解决的,而且百度上也是有相当的安装教程,之所以我写这一个安装教程,是因为虽然这样,我还是经常在各种技术群里看到很多新手在问AD安装的相关问题,原因在于网上安装教程都是比较老版本的AD的安装方法,对新版本有些差异,而且网上大部分还是文字教程,使得很多新手不容易看懂。在此以我

2014-08-14 21:57:16 6050 1

原创 NET Micro Framework移植问题记录

在构建MF编译环境的时候,第一次对里面STM32的例程jffc

2014-08-12 21:13:34 545

make for windows.zip

Windows下的make,包括X86版本跟X64版本,配置gcc使用Makefile编译时用到

2019-09-08

电子负载设计基础

电子负载设计基础 电子负载基本工作原理: 1. 恒压模式 2. 恒流模式 3. 恒阻模式 4. 恒功率模式

2012-09-20

迷你书-深入理解计算机系统(原书第2版)

这本书被誉为“价值超过等重量黄金的无价资源宝库”;  这本书是Amazon 五星图书,最伟大的计算机科学教材之一;  这本书由卡耐基梅隆大学计算机学院院长,IEEE 和ACM 双院士倾力推荐;  这本书被超过80 所美国和世界一流大学计算机专业选用本书为教材。

2011-04-27

射频与数模混合类高速PCB设计

PCB高级设计讲座,价值的上万的PCB设计讲座

2010-09-11

空空如也

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

TA关注的人

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