嵌入式c
魔罗
嵌入式软开发、嵌入式通用基础框架研究。
展开
-
单片机模拟spi通信
#include sbit SCLK = P2^0; /*时钟线 */sbit MOSI = P2^1; /*从进主出 */原创 2015-08-22 10:33:44 · 1209 阅读 · 1 评论 -
基2时选快速傅里叶变换算法(FFT)
此程序是大学以前做双色点阵音乐频谱时参考数字信号处理写的。相对于网上的一些代码,我这里对一些特殊的旋转因子做了特别处理程度稍微快了些,当然相对了基2,使用分裂基、基4肯定会更快。原创 2016-12-11 11:41:38 · 6782 阅读 · 0 评论 -
stm32F4 串口DMA+环形缓冲区的实现
下面是串口DMA+环形缓冲区的实现,数据收发是异步的,不需要死等。关于环形缓冲区参考:http://blog.csdn.net/jieffantfyan/article/details/53572103实现原理程序是在串口中断收发方式的基础上设计的,应用层通过环形缓冲区进行串口数据读取,环形缓冲区作为一级缓存,增加DMA作为二级缓存。相对中断方式这种设计可以减少串口进入中断的次数,...原创 2016-09-26 22:43:56 · 17738 阅读 · 10 评论 -
一个免锁环形缓冲区的实现
#ifndef _RING_BUF_H_#define _RING_BUF_H_/*环形缓冲区管理器*/typedef struct{ unsigned char *buf; /*环形缓冲区 */ unsigned int size; /*环形缓冲区 */ unsigned int front; /*头指针 ...原创 2016-12-11 11:09:01 · 4602 阅读 · 0 评论 -
查表法的crc校验算法
/** Copy right : * File name : CRC16.c* Author : Roger.luo* version : V1.0* Modified date : 2014/6/14* Description :提供CRC16校验函数采用CRC16-CCITT*多项式为 x^16 + x^12 + x^5 + 1原创 2016-10-30 10:35:16 · 6121 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
循环队列的实现queue.h:“`/************************************************************ * @file * @brief 循环队列 * * @version 2.0 * @date 2015-07-18 * @author * * Copyright(C) 2015 * All rights r原创 2016-05-21 19:01:51 · 304 阅读 · 0 评论 -
在Realview MDK中添加自己的FLASH编程算法
出自:Realview MDK 应用系列文章 在Realview MDK中, Flash烧写算法不是通用的,都是针对具体的Flash存储芯片的。由于市面上的Flash种类比较多, 所以Realview MDK不可能包含所有的Flash芯片烧写程序。 但是在具体的应用中,开发者在Realview MDK中可能会找不到自己所需要的Flash烧写程序,这时,用户就必须自己添加Flash烧写程序转载 2016-01-08 21:38:58 · 2863 阅读 · 0 评论 -
结构体成员地址在结构体内的偏移
例:typedef struct {unsigned shortcrc; /* CRC16 over data bytes*/unsigned chardata[1]; /* Environment data - variable lenth */}env_t;求data[0]偏移地址 =>原创 2015-12-29 10:28:48 · 680 阅读 · 0 评论 -
基于MDK平台 cortex-M3 shell 的实现
每次写完代码最头疼的就是测试,大多数时间都得花在这里。要么用串口调试助手、要么用上位机。至于串口调度助手效率,大家都懂的。但又不想每次都写一个上位机、闲暇之余模仿u-boot和rtt-shell 写了一个shell,大多数代码都来自U-BOOT的、做了小小的阉割。原创 2015-10-29 14:41:47 · 1164 阅读 · 0 评论 -
判断定义宏是否为2的幂
...#define CFG_ENV_SIZE 512......#if ((CFG_ENV_SIZE & CFG_ENV_SIZE - 1) != 0) #error CFG_ENV_SIZE must be a power of 2.#endif原创 2015-12-29 09:25:37 · 629 阅读 · 0 评论 -
CRC-CCITT算法
/** Copy right : * File name : CRC16.c* Author : * version :* Modified date : 2014/6/14* Description :提供CRC16校验函数采用CRC16-CCITT*多项式为 x^16 + x^12 + x^5 + 1原创 2015-10-03 12:22:49 · 6391 阅读 · 0 评论 -
cortex-m3非对齐访问引发HardFault
进行stm32 或者lpc开发时遇到HardFault错误。一般是数组越界访问或者堆栈溢出,今天遇到了个非对齐访问,源代码如下:u32 *p;....p = (u32 *)&buf[xxx];for (...; ...; ...){*p++ = xxx;//=>进入HardFault}避免非对齐错误的方法使用关键字__pa原创 2015-08-22 10:29:15 · 2144 阅读 · 0 评论 -
运营商MCC,MNC大全
MCCMNCBrandOperatorStatusBands (MHz)References and notes00101TESTTest NetworkOperationalGSM 900 / GSM 1800Used by GSM test equipment[edit]A[edit]Abkhazia - GE转载 2017-10-12 17:43:15 · 91723 阅读 · 2 评论