STM32笔记
文章平均质量分 76
MetalSeed
_MetalSeed
展开
-
C代码优化方案
1、选择合适的算法和数据结构选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。与数组索引相比,指针一般能使代码速度转载 2013-01-27 20:49:18 · 2001 阅读 · 4 评论 -
MC9S12 底层驱动
底层驱动init.c倍频 + 三个级联PWM(moto1 moto2 steer) + 串口中断 + 脉冲计数 + 外部中断(下降沿)#include "All_includes.h" /* 锁相环总线倍频至80MHz fPLLCLK = 2 * fOSCCLK * (SYNR + 1) / (REFDV + 1) */ void init原创 2013-04-08 19:13:29 · 3208 阅读 · 0 评论 -
舵机打表生成器
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PI 3.14159265358979323原创 2013-05-05 03:23:33 · 1693 阅读 · 0 评论 -
形象解释PID算法
小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。 小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度。水漏得太快,每次小明来检查时,水都快漏完了,离要求的高度相差很远,小明改为每3分钟来检查一次,结果每次来水都没转载 2013-04-20 12:54:14 · 1652 阅读 · 0 评论 -
GfMath
GfMath.h#ifndef __GFMATH_H__#define __GFMATH_H__u32 wordAbs(u32,u32);int intAbs(int, int);int byteAbs(int , int);int sameSign(int a,int b,int c);int getMid(int a,int b,int c);int inRang原创 2013-04-21 21:26:09 · 1149 阅读 · 0 评论 -
STM32F051 IAP源码分享
STM32F051 IAP源码分享 如果不懂IAP的请自动脑补或者怒戳这里http://www.openedv.com/posts/list/11494.htm 然后STM32F051的IAP有一点区别也请自动脑补 ^_^ 其实我只是来分享源码的: 事情是介个样子滴: IAP需要有两个工程,第一个是Bootloader,第二个是Application原创 2014-11-07 00:45:29 · 11502 阅读 · 8 评论 -
STM32 模拟I2C (STM32F051)
模拟IIC/** ****************************************************************************** * @file HTU20.x * @brief HTU20 function * @cpu STM32F051 * @compiler Keil uVision V4原创 2014-07-21 17:43:08 · 7646 阅读 · 1 评论 -
K60 OLED驱动
oled.h#ifndef __oled_H__#define __oled_H__#include "sys.h"#define OLED_DC_PORT PTA#define OLED_SDA_PORT PTA#define OLED_SCL_PORT PTA#define OLED_RST_PORT PTA#define OLED_DC_PIN 1原创 2013-05-04 09:53:49 · 5951 阅读 · 2 评论 -
STM32 F407 PWM模板
void Pwm_Init(unsigned long Frequency, float DC1, float DC2, float DC3, float DC4){ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; uint16_t TimerPerio原创 2013-09-07 01:25:59 · 3066 阅读 · 0 评论 -
算法模板-PID
int Error[3]={0,0,0};int Pwm;int Kp,Ki,Kd;int speed[2];int base_speed;void Mot_PID(int now_cnt, int target_cnt){ Error[2]=Error[1]; Error[1]=Error[0]; Error[0] = (target_cnt - now_c原创 2013-09-07 10:40:11 · 1940 阅读 · 0 评论 -
STM32 控制GSM模块收发信息 F407 discovery
main.c#include "stm32f4_discovery.h"#include #define LED1_ON GPIO_SetBits(GPIOD,GPIO_Pin_12)#define LED1_OFF GPIO_ResetBits(GPIOD,GPIO_Pin_12)#define LED2_ON GPIO_SetBits(GPIOD,GPIO_P原创 2013-08-14 12:25:54 · 4205 阅读 · 0 评论 -
STM32F407 Discovery uart1串口通信
Discovery kit 需将A9 A10映射到其他口进行uart1通信原创 2013-08-09 01:44:36 · 9957 阅读 · 3 评论 -
悬挂运动控制系统 源代码 (05年电赛)
题目连接:05年电赛 悬挂运动控制系统 源代码http://wenku.baidu.com/view/b51e3a25ccbff121dd3683bf.html系统: 2块STM32 A为上位机 液晶显示 语言提示 摄像头 + NRF 发送目标路径, 所有步进电机等由STM32 B控制。下位机 main.c#include "main.h"#in原创 2013-08-08 01:04:03 · 6130 阅读 · 6 评论 -
STM32启动过程分析
相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x000000(PC = 0x000000)同时中断向量表的位置并不是固定的。而Cortex-M3内核则正好相反,有3种情况:1、 通过转载 2015-03-26 15:22:43 · 3174 阅读 · 0 评论