一直想写个类似uCOS的OS,近段时间考研复习之余忙里偷闲,总算有点成果了。言归正传,我觉得OS最难的部分首先便是上下文切换的问题,他和MCU的架构有关,所以对于不同的MCU,这部分需要移植。一旦这个问题解决了
0.前言 去年(2013年)的整理了LwIP相关代码,并在STM32上“裸奔”成功。一直没有时间深入整理,在这里借博文整理总结。LwIP的移植过程细节很多,博文也不可能一一详解个别部分只能点到为止。 【本文要点】 【1】
搞过全桥电机驱动的都知道控制死区时间的重要性,一般解决方案是搭建电路控制死区时间或直接使用全桥驱动芯片。 而STM32拥有两个高级定时器,可以直接输出具有调节死区时间的PWM。 现以TIM1通道1输出占空比为50%,死
AT24Cxx系列EEPROM是由美国Mcrochip公司出品,1-512K位的支持I2C总线数据传送协议的串行CMOS E2PROM,可用电擦除,可编程自定时写周期(包括自动擦除时间不超过10ms,典型时间为5ms)的。串行E2PROM一般具有两种写入
(1)Flash的简介 不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了1024K 字节。STM32F103ZET6 的 FLASH 容量为 512K 字节,属于大容量产品。 STM32 的闪存模块由:主存储器、信
首先,我是看着这位博主的文章受到的启发,进而加深了自己对USART的理解。下面是自己改装并实验过的程序。原文:http://www.cnblogs.com/greatwgb/archive/2011/07/28/2119350.html1.串口的基本概念在STM32的参考手册
使用LwIP容易,但要想使用LwIP获得好的的速度。LwIP做一个如下修改,会让TCP网络速度好一些:lwipopts.h文件/* TCP Maximum segment size. */#define TCP_MSS 2048//1024/* TCP sender buffer space (by
STM32利用库函数编程库函数是STM32生产厂家封装好的函数库,方便用户编程。USART 库函数USART库函数包括三种初始化函数,1—缺省值初始化,2—普通初始化,3—结构体类初始化,一般情况下,我们选择第三种初始化方式
有时候,我们所写代码的具体实现方法不想让其他人知道。这时,可以用Keil对代码进行封库。注意:在封库之前,必须确保整个工程代码能够编译通过。下面举例说明操作步骤:想要把工程中“firmware.c”文件封装成库文件
一。开发环境和固定库版本二。准备工作三。建立工程模板1. 建立一个Template的文件夹2.在Template文件夹下建立下面3个文件夹CORE 用来存放核心文件和启动文件, OBJ 是用来存放编译过程文件以及 hex 文件, STM32F10
简介不同的开发板的原理图结构也不尽相同,笔者在这里使用野火的MINI-V3(F103VET6)简易开发板对GPIO口的设置做一个简单的介绍,并实现按键控制LED灯的亮灭。方便读者可以快速熟悉并灵活应用。原理图分析首先我们来
1、创建的cJSON对象root,没有cJSON_Delete(root);执行一次就死机了2、cJSON解析的root得到的字符串char *str,free(str),执行n次后就返回信息错误了。改成myfree(str)后运行正常了。
STM32中GPIO的配置风格和以往研究的MCU有很大的不同,研究了好一段时间才搞通。typedef enum{ GPIO_Mode_AIN = 0x0,GPIO_Mode_IN_FLOATING = 0x04,GPIO_Mode_IPD = 0x28,GPIO_Mode_IPU = 0x48,GPIO_Mode_Out_OD = 0x
当从虚拟串口到真实串口发数据时,没有错误,但发送一个稍微大一点的文件时(如1M),误码率很高。不知是为什么?其中:int main(void){#ifdef DEBUG debug();#endif Set_System(); Set_USBClock(); USB_Interrupts
首先来看模块图在某宝上一搜就能找到,关于它的使用也是非常简单,先看数据手册里面需要注意的几点1 基本的参数在实际测试当中,最大测量三米多的距离还是可以,最小距离我没有做测试,我测的最小距离是50厘米,再往
STM32和ST-link仿真器的接口连接,采用SWD模式
上图的最右端为I/O引脚,左端的器件位于芯片内部。I/O并联了两个用于保护的二极管。注:部分图片内容来自《STM32库开发实战指南》
脉冲调制(PWM)是利用微处理器对数字输出来对模拟电路的一种非常有效的技术。简单点说就是对确定频率的信号,调整其占空比。stm32的定时器除了TIM6和TIM7外,其他定时器都可以产生PWM输出。其中高级定时器TIM1和TIM
1、NVIC_InitStructure结构体在misc.h文件中进行定义,编程时可查看。关于NVIC的函数都在misc.h文件中进行定义。2、中断服务函数入口名称在startup_stm32f10x_hd.s文件中。3、 中断结构参数NVIC_InitStructure.NVIC_
1、keil编译的三个按键的功能A、第一个按钮:Translate就是翻译当下修改过的文件,说明白点就是检查下有没有语法错误,并不会去链接库文件,也不会生成可执行文件。B、第二个按钮:Build就是编译当下修改过的文件,它