MSP430开发总结
1.#i nclude指要在编辑器设定目录下,#i nclude""指的是在当前工程目录下。2.要调用另一个文件中的函数,要把这个函数文件放到当前工程目录下,并且在工程中添加此文件。3.命名中不能有-,比如:byq-ee会认为是错误的,要用下...
如何使用C语言来编写MSP430的高质量代码
需要注意的事项如下:1) 通常在满足运算需求的前提下,尽量选择为变量定义字节少的数据类型。比如最常用的int和char,int是16位的,char是8位的,如果没有必要,不要使用int,而且使用char也最好使用unsigned char。运行时,可以在变...
准双向口和双向口的区别
在最初的51系列单片机中P0口:双向8位三态I/O口P1口:准双向8位I/O口P2口:准双向8位I/O口P3口:准双向8位I/O口这里特别要主要准双向与双向三态I/O的区别:P1口,P2口,P3口是3个8位准双向的I/O口,各口线在片内均有固定的上拉电阻,当...
STM32串口发送注意问题
使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。换成发送别的数值的数据,如0x06 0x0ff,则接收到0x0ff,0x06丢失。...
8051单片机数据说明
深入理解并应用C51对标准ANSIC的扩展是学习C51的关键之一。因为大多数扩展功能都是直接针对8051系列CPU硬件的。具体说明如下(8031为缺省CPU)。一、Keil C51扩展关键字C51 V4.0版本有以下扩展关键字(共19个):_at_idata...
如何提高FLASH的擦写次数
在实际应用中,用户经常需要在程序运行过程中保存或读取一些数据,这些数据在工作中经常会变化,而且掉电后也不能丢失,所以需要及时地进行存储,存储这些数据常用的存储器是EEPROM。HXM6002虽然本身不带EEPROM,但是它支...
AD9851调试问题及程序
1.关于有源晶振,开始的时候,搭硬件电路的时候,晶振的问题是最困扰我的,众多网友对一个问题争执不休,就是有源晶振出来的到底是个什么样的波形,有的网友说是方波,有的说的三角波,有的说是正弦波,根据我实测的结果,3.3V...
关于51单片机读锁存器、读引脚的问题
80C51单片机有P0-P3四个P口,以P0为例说明:要搞清这个问题,就要明白p0口的内部结构。P0口是由锁存器经两个驱动场效应管和外部引脚相连的。读引脚的意思就是直接读P0外部引脚的电位,而读端口(锁存器)读的是内部与数据总线链...
ARM异常中断返回的几种情况
异常中断返回的几种情况:重要基础知识:R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或正在“译码”的指令。一般来说,人们习惯性约定将“正在执行的指令作为参考点...
avr的flash和ram存放的数据问题
avr单片机是基于哈佛结构,它的程序存储器和数据存储器分开。avr的Flash存储器空间存放的内容有:(1)text:程序代码区(2)interrupt vectors:存放中断向量(3)fun_lit:函数列表区。函数列表区包含了函数的入口地址。(4)lit:...
ATmega168的SPI发送完寄存器SPIF不置位的问题
利用ATmega168的硬件SPI驱动74HC595来扩展串行接口。把MOSI和SCK设置为输出,然后设置好寄存器。,具体如下:static void vSpi595Init(void){DDRB|=(1<DDRD|=(1<SPCR=(1<<spe)|(1<<mstr)|(1<<spr0)|(1<<spr1); 使能spi...
AVR并口下载线制作注意问题
出现的问题:在使用AVR并口下载线时,为节省成本,使用方便,将并口上与下载程序的引脚通过串联330欧电阻相连,用到了GND、SCK、MOSI、SCK、MISO共5个脚,这样做出来的下载线导致我在ICC里读熔丝位时时对时错,即便是读出来...
为何一般不建议在中断中喂狗?
在"主程序喂狗论"中,最"强有的理论依据"就是---"程序跑飞了可是中断不一定会死" (中断一般都有自己固定不变的中断向量地址,这样即使主程序飞,中断也能正确地跳入自己的轨道继续运行.)可如果只在主程序喂狗,由于中...
关于MSP430字节对齐的问题
例如: 奇数字节unsigned char Flag = 0;unsigned char U0RxBuf[512+32];//----------------------------------------typedef struct{ unsigned char Flag; unsigned char NC_A; unsigned shortCRC; unsigned shortAD...
多余的引脚怎么办?例如单片机不用IO口?
输入口不要悬空,尤其是输入阻抗高的,更不能悬空。例如在CMOS电路中,如果输入口悬空,可能会导致输入电平处于非0和非1的中间状态,这将会使输出级的上下两个推动管同时导通,从而产生很大电流。一般的做法是通过一个电阻(例如10...
讲一讲单片机看门狗的概念,原理,运用
看门狗,又叫watchdogtimer,是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT定时超...
真正的单片机入门 从处理多任务开始
我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性...
怎样混好电子这行?(MCU、ARM、DSP,嵌入式)
很多初学者,甚至是混了好几年的老手,都在抱怨,电子这行怎么竞争这么大啊? 颓废,这完全在抹杀自己的激情,没了激情,搞电子,完全就是在浪费生命。其实,竞争真的大吗??对比一下,难道做业务的竞争不大,做管理的竞争不大,现在这个社会...
单片机控制系统的调试
(1)硬件调试 根据设计的原理电路做好实验样机,便进入硬件调试阶段。调试工作的主要任务是排除样机故障,其中包括设计错误和工艺性故障。① 脱机检查:用万能表或逻辑测试笔逐步按照逻辑图检查机中各器件的电源及各引脚的...
DSP2812系统头文件结构
以AD寄存器的文件结构,说明AD寄存器的命名,分配地址空间以及调用和使用。1.在DSP28_Adc.h中定义一个ADC_REGS类型的寄存器AdcRegs。ADC_REGS是一个结构体类型,这个结构体类型如structADC_REGS所义。Union是一种声明共用...
单片机程序死机跑飞查错指南
1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象;2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这...
STM32定时器做外部脉冲信号计数器用
具体设置如下:/* TIM3_CH2 为脉冲输入口1. 配置GPIO_GPIOA_PIN7 输入2. 配置TIM3 计数器在TI2 端的上升沿计数: 1). TIMx_CCMR1: CC2S =01; 配置通道2检测TI2输入的上升沿 2). TIMx_CCMR1:IC2F =000; 选择输入滤波器带...
MCU的测试方法。
所谓中测即是WAFER的测试,它会包含产品的功能验证及AC、DC的测试。项目相当繁多,以HOLTEK产品为例最主要的几项如下:1. 接续性测试:检测每一根I/OPIN内接的保护用二极管是否功能无误;2. 功能测试:以产品设计者所提供测试资...
MSP430内部上拉下拉使用注意——IO口测高低电平
如果有效状态为高电平,则需要配置为REN为上拉使能,且配置OUT为0,即设置为下拉。如果有效状态为低电平,则需啊哟配置REN为使能,且OUT位1,即设置为上拉。如果不开启内部上拉下拉使能,则IO可能出现不固定状态。譬如,当IO被输入高...
单片机的进制转换问题
一、正数我们以(25.625)(十)为例讲解一下进制之间的转化问题。1. 十 -----> 二给你一个十进制,比如:6,如果将它转换成二进制数呢?10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直...
毛刺现象的消除方法小结
方法/步骤1利用冗余项法利用冗余项消除毛刺有2种方法:代数法和卡诺图法,两者都是通过增加冗余项来消除险象,只是前者针对于函数表达式而后者针对于真值表。以卡诺图为例,若两个卡诺圆相切,其对应的电路就可能产生险象。因...
几种单片机的IO位寻址的方法
众所周知,51单片机可以进行位寻址,例如P1^2=0;在430单片机的IO不可进行位寻址,则常用#define DIN0 P4OUT&=~BIT5; 输出低电平#define DIN1 P4OUT|= BIT5; 输出高电平#define DOUT P4IN&BIT6; 定义为输入端口来定义,由于...
中断方式下进行串口通讯的正确方法
一般普遍的把串口通讯分为查询方式和中断方式。查询方式比较容易理解,各种书籍上都介绍的比较清楚。但中断方式,没有几本书讲得好的,甚至有些例程根本无法实际应用。问题有:1,半中断法。只使用接收中断,不使用发送中断,发送...
正确配置AVR熔丝位的方法
(1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。...
初学C51的一些误区
1)C忌讳绝对定位。常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。...
完美的8051单片机C语言编程模板
[单片机SFR定义的头文件#include //通用89C51头文件#include //通用89C52头文件#include //STC11Fxx或STC11Lxx系列单片机头文件#include //STC12Cx052或STC12Cx052AD系列单片机头文件#include //STC12C5A60S2系列单...
单片机C语言code与data的作用
code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇...
锁存器和缓冲器的作用是什么?
锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其...
检测单片机是否正常工作的方法
首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否是电源电压,例如常用的5V。接下来就是检查复位引脚电压是否正常。分别测量按下复位按钮和放开复位按钮的电压值,看是否正确。然后再检查...
晶振不起振的原因分析
要要考虑这三点:1 晶振两端在工作的动态阻抗问题,此阻抗有一定的范围,因而在设计时会并联一个几百K的电阻来稳定动态阻抗;2 谐振电容的匹配;3 焊接时烙铁的温度太高。遇到单片机晶振不起振是常见现象,那么引起晶振不起...
关于单片机程序初始化硬件参数代码
首先,对于以后再次使用的新设备,会出现意想不到的问题。因为偶然拿来一个新的设备,没有经过初始化,这个时候程序的参数都是要配置之后的,对于调试者是个灾难。要分析造成问题的原因,往往也不好分析,因为程序是好用的,硬件是新...
JTAG,ISP,Debugwire的区别
JTAG是Joint Test Action Group(联合测试行动小组)的缩写,是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。JTAG用来对芯片进行测试的基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专...
MSP430两种串口升级方式对比
言归正传。我做过两种方式的串口升级固件程序。我把他们分别成为loader方式和IAP方式。所谓的loader方式就是最初只需烧写loader程序即可,loader程序负责通过串口接收应用程序代码,完整接收并校验无误之后,跳转到应用程...
AVR单片机的EEPROM读写分析
由于AVR的EEPROM写周期比较长(一般为毫秒级),因此在编程使用过程中要特别注意.对于读EEPROM没什么好说的,读一个字节的数据要耗费4个时钟周期,可以忍受,写就比较麻烦了,虽然放在EEPROM的数据都不是频繁访问的;虽然可...
WARNING L15: MULTIPLE CALL TO SEGMENT
今天调试时遇到了这个问题,以前都不注意这些警告错误,现在看来争取要做到:0错误,0警告。中断中和中断外都调用了同一个串口打印函数,一直有上述的报警,没在意,今天调试时发现串口打印出了一些乱七八糟的东东,且程序也不知道跑...
avr单片机的熔丝配置
(1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。...
ATmega128中重要熔丝位的配置
(1)熔丝位M103C。M103C的配置将设定ATmega128是以ATmega103兼容方式工作运行还是以ATmega128本身的方式工作运行。ATmega128在出厂时M103C默认状态为“0”,即默认以ATmega103兼容方式工作。当用户系统设计使芯...
AVR熔丝位的配置设置
用户使用并行编程方式、ISP编程方式、JTAG编程方式都可以对AVR的熔丝位进行配置,但不同的编程工具软件提供对熔丝位的配置方式(指人机界面)也是不同的。有的是通过直接填写熔丝位位值(如:CVAVR、PonyProg2000和SLISP等),有的...
ATmega16的熔丝设置详解
在此写下自己对熔丝的理解,参照了一些MEGA16的PDF文档,双龙的文档,以及大家的帖子。力求易懂、全面。下面以双龙的在系统编程软件SLISP为例具体说明我对熔丝的理解。a introb 低位(时钟及启动时间设置):c 时钟总表d 高位(B...
PICC ME16 C简要说明书
第一部分为了对PIC单片机有更好的支持,PICC在标准C的基础上作了一些扩充:定义I/O函数,以便在你的硬件系统中使用中定义的函数。用C语言编写中断服务程序用C语言编写I/O操作程序C语言与汇编语言间的接口1-1 与标准C的不同...
PICC——嵌入汇编
有两个原因决定了用 C 语言进行单片机应用程序开发时使用汇编语句的必要性:单片机的一些特殊指令操作在标准的 C 语言语法中没有直接对应的描述,例如 PIC 单片机的清看门狗指令“clrwdt”和休眠指令“sl...
PICC——基本知识(变量)
利用这一技术后所有的动态局部变量都可以按已知的固定地址地进行直接寻址,用 PIC 汇编指令实现的效率最高,但这时不能出现函数递归调用。PICC 在编译时会严格检查递归调用的问题并认为这是一个严重错误而立即终止编译过...
PICC编译指针详解
指向 RAM 的指针如果是汇编语言编程,实现指针寻址的方法肯定就是用 FSR 寄存器,PICC 也不例外。为了生成高效的代码,PICC 在编译C原程序时将指向 RAM 的指针操作最终用 FSR 来实现间接寻址。这样就势必产生一个问题:FSR ...
PICC ---- 函数
函数的代码长度限制 PICC决定了C原程序中的一个函数经编译后生成的机器码一定会放在同一个程序页面内。中档系列的 PIC 单片机其一个程序页面的长度是 2K字,换句话说,用 C 语言编写的任何一个函数最后生成的代码不能超...
PICC ---- 各种变量修饰
extern — 外部变量声明如果在一个 C 程序文件中要使用一些变量但其原型定义写在另外的文件中,那么在本文件中必须将这些变量声明成“extern”外部类型。例如程序文件 code1.c中有如下定义:bank1 unsign...
PICC中主程序和中断调用同一个子程序的问题
#pragma interrupt_level 1void function (void){}然后在中断函数那写句#pragma interrupt_level 1void interrupt(void){ function();}void main (void){ function();}程序中出现重入现象是错误的。PICC具有的重入保...
PIC8位在PICC中的数据类型
在汇编中,我们对一个地址为0X20的内存附值:movlw 255;movwf 0x20;但一个内存是8位结构,能表示最大的数是255。要是超过了会怎么样呢?movlw 256;movwf 0x20;通过DEBUG后,可以看出0X20中的值不是256,而是0了。这里可以看出PIC...
51单片机的读写引脚和端口
(1)读引脚之前一定要对端口先置1,使mosfet V2截止,以免信号被拉低而读错,这一点很容易理解。(2)一般的教科书上都会强调:读端口的指令为端口内容取反这样的“读-修改-写”指令。而读引脚之前,先置1,然后用Mov A,Px之...
单片机设计过程中摆脱电磁干扰的方法
一、影响EMC的因数1.电压电源电压越高,意味着电压振幅越大,发射就更多,而低电源电压影响敏感度。2.频率高频产生更多的发射,周期性信号产生更多的发射。在高频单片机系统中,当器件开关时产生电流尖峰信号;在模拟系统中,当负载...
外部震荡源中断的计时实验
PA0-PA7 连到八段数码管的a-p ,PC0-PC5 分别连六个数码管的共阴极c程序:/*****************************************************This program was produced by theCodeWizardAVR V2.05.5a EvaluationDate : 2011/12/1...
AVR外部中断实验程序
/*****************************************************This program was produced by theCodeWizardAVR V2.05.5a EvaluationDate : 2011/12/13Author : Freeware, for evaluation andnon-commercial use onlyChip...
TTL电平信号与COMS电平信号
一、TTL电平信号TTL(Transistor-Transistor Logic) 全名晶体管-晶体管逻辑, TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑“1”,0V等价于逻辑“0”,这被称做TTL(晶体管-晶...
FPGA/CPLD设计流程
1.电路设计与输入:常用:HDL(硬件描述语言) 与 原理图设计输入;辅助:波形输入 与 状态机输入;2.功能仿真又名:前仿真;作用:验证电路功能是否符合设计要求;3.综合优化作用:将设计输入翻译成由 与、或、非门以及RAM、触发器等基本...
STM32F3—CAN通信自发自收
自发自收只需要一个器件,CAN的模式选择回环(Loopback)模式,这种模式下发出的数据也会被CAN本身接收回来,只需要检查接收到的数据和发送的数据是否一样,就能测试发送是否成功。代码:void CAN_Config(void){CAN_InitTypeDef ...
STM32数模转换-DAC_DMA
DAC—数模转换器STM32的DAC使用起来非常简单,首先将连接DAC通道的GPIO引脚配置为模拟状态,然后初始化DAC,一共只有四个参数需要初始化,其中最重要的是触发源:这个参数的作用是,每来一个触发源信号,DAC就刷新一次输出,也...
STM32高分辨率定时器(HRTIM)使用笔记
高分辨率定时器的初始化比普通定时器要复杂得多,HRTIM_OutputCfgTypeDef HRTIM_TIM_OutputStructure;//配置输出特性,高低电平等HRTIM_BaseInitTypeDef HRTIM_BaseInitStructure;//配置基本参数,这部分和普通定时器一样H...
STM32F3硬件I2C与LSM303DLHC通信
STM32微控制器提供硬件I2C,对它进行相应配置就可以用来进行多个设备之间的通信。使用步骤:1. Enable peripheral clock2. Enable SDA, SCL and SMBA (when used) GPIO clocks3. Peripherals alternate function: Call G...
STM32的使用之SPI通信DMA模式
基本步骤是:1. 配置好SPI相应引脚功能2. 配置和初始化SPI3. 初始化DMA4. 片选信号选择要通信的设备5. 打开DMA对应DMA通道:SPI1_RX---DMA1_Channel2;SPI1_TX---DMA1_Channel3代码:#define L3GD20_SPI_TDR (u32)(SPI1_BASE...
STM32如何配置使用SPI通信
STM32通常有2~3个SPI接口根据STM32手册的使用方法:1. Enable peripheral clock2. Enable SCK, MOSI, MISO and NSS GPIO clocks3. Peripherals alternate function: Connect the pin to the desired peripherals' Alt...
STM32输出PWM状态总结
输出极性(Polarity):基于正逻辑,即高电平为1,低电平为01.输出极性高(Polarity_High):高电平1为有效状态(active),低电平0为无效状态(inactive)2.输出极性低(Polarity_Low):低电平0为有效状态(active),高电平1为无效状态(ina...
STM32F3的ADC使用DMA模式传输转换数据
ADC的详细配置与使用见之前的日记STM32中ADC的使用,只是最后增加一步配置DMA:DMA for ADC channels features configuration To enable the DMA mode for ADC channels group, use the ADC_DMACmd()function. To config...
printf()函数重定向到STM32串口输出
C语言中使用printf()函数输出是非常方便功能非常强大的,如果能将printf()函数使用到串口上,能实现非常多的强大输出功能,极大方便我们使用串口输出功能。printf()函数是输出到显示器,而MCU是没有显示器的,要使他输出到串口...
STM32 EEPROM读写过程中被中断产生异常处理分析
读写EEPROM时,STM32有中断产生可能会引起i2C死锁,然后为SCL为高,SDA一直为低,从新给EEPROM芯片上电又正常,或者直接把SDA拉高也恢复正常,其原因是EEPROM芯片把IIC总线拉死了。在正常情况下,I2C总线协议能够保证总线正常的读...
DS18B20 的CRC 算法详解
DS18B20数字温度器件就是采用CRC8的校验方式,下面是CVAVR集成的CRC8校验函数#include #include unsigned char a[]={0x28,0x6D,0x00,0x85,0x00,0x00,0x00,0xCF};unsigned char crc8;main(){ while(1) { crc8=w1_dow...
51单片机产生串口中断的方式
首先,你要用软件允许中断,即C语言中EA = 1; 允许总中断ES = 1;//允许串口中断汇编中可用SETB EA ;允许总中断SETB ES ;允许串口中断当单片机接收到一帧数据后,RI会置1,向CPU申请中断,若之前有中断允许,则产生了中断,进入中断...
延长FLASH与EEPROM芯片写入次数的办法
在开发电子产品时,常常需要断电后保存某些数据,这就需要使用 FLASH或EEPROM芯片,这两种芯片,可擦除的次数是有限制的,通常FLASH为10万次,EEPROM要多一点,为100万甚至1000万次。 FLASH的擦除不能单个字节进行,有一个最小单位,存...
国外高手剖析FPGA难学的几大原因
1、不熟悉FPGA的内部结构,不了解可编程逻辑器件的基本原理。FPGA 为什么是可以编程的?恐怕很多菜鸟不知道,他们也不想知道。因为他们觉得这是无关紧要的。他们潜意识的认为可编程嘛,肯定就是像写软件一样啦。软件编程的...
提高ADC精度应该注意的一些问题
利用C8051F350我们做到了稳定的19~20位,24bitADC结果中最后四位跳变。总结一下影响精度的主要原因:1、采样速率、字输出速率和抽取比决定了ADC的有效分辨率和精度,手册给出了详尽的表格(表4.4~表5.9),这是350ADC属sigma-del...
进行单片机硬件系统设计需遵循的几个要点
进行任何方面的设计,如果不遵照一定的要点,那么,这样的设计是很难得到理想的产品的。相关专家表示,一个单片机硬件系统进行设计时,也有着其自身设计的原则。所以,作为单片机硬件系统设计人员要熟知其原则,具体来看看详细内容...
详解单片机串口通讯RXD与TXD对接
首先需要明白两个概念,就是DTE和DCE。DTE是指数据终端设备,典型的DTE就是计算机和单片机。DCE是指数据通信设备,典型的DCE就是MODEM。RS232串口标准中的RXD和TXD都是站在DTE立场上的,而不是DCE。明白了这一点,再讲下面的接...
关于NIOS II PIO的几个问题
1.几个示例(1)控制LEDS。(2)获得来自外部的开关信息。(3)控制显示设备。(4)与外部设备通讯。注意PIO可以连接至片外与外部设备交互,亦可直接与FPGA内部逻辑相连接。2.PIO所具有的功能(1)输入此种只能设置PIO为输入,此时对directio...
关于DSP配置CMD文件的使用
关于CMD文件的配置:首先在F2812.CMD文件中,可以看到有关于加载FLASH到RAM的内容:ramfuncs : LOAD = FLASHD,RUN = RAML0,LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),PAGE...
msp430常见问题
1-问:JTAG 与 I/O 功能之间的 MSP430 引脚复用答: 四个引脚 P1.7 - P1.4 在 20 与 28 引脚 MSP430F1xx 器件上均同时具有 I/O 与 JTAG 功能。这些引脚的默认功能是,当器件通电时具有 I/O 功能。当测试引脚拉高时,则将这些...
什么是ISP技术
Lattice是ISP(在线可编程)技术的发明者,ISP技术极大的促进了PLD产品的发展。在系统编程ISPISP(In-SystemProgramming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件...
复位信号其实不简单
案例一:clk和rst_n信号连接到FPGA,FPGA将复位信号直接给MCU,时钟信号经二分频提供给MCU,非常简单吧,分频程序如下:assign rst_mcu_n=rst_n;always @ (posedge clk or negedge rst_n)if(rst_n==1'b0)clk_mcu<=1'b0;elseclk...
单片机编程经验
经验之一:用“软件陷阱+程序口令”对付PC指针的弹飞 当CPU受到外界干扰,有时PC指针会飞到另一段程序中,或跳到空白段去。其实,如果PC指针飞到空白段去,倒也好处理。只要在空白段设立软件陷阱(拦截指令),将程...
Keil的代码优化产生的问题
阅读了《单片机与嵌入式系统应用》2005年第10期杂志《经验交流》栏目的一篇文章《Keil C5l对同一端口的连续读取方法》(原文)后,笔者认为该文并未就此问题进行深入准确的分析。文章中提到的两种解决方法并不直接和简单...
MCU之心路分享-----前言
国赛后,很深刻地反应出了自己的许多不足之处,内心里坚决的认为,必须重新学单片机,静心踏踏实实地从零开始学,这小小的芯片太神奇太神奇,以至于让自己巴不得挖地三尺也要把它挖掘清楚。 这些日子,一直在思考着,一个问题,我...
解决STM32不能读RAM下载的问题
ERROR: RAM check failed @ address 0x20000000.- ERROR: Write: 0xE7FEBE00 E07CE062- ERROR: Read: 0x0000000 000000000- ERROR: (0 bytes of RAM have been checked successfully)- ERROR: Failed to read back...
TTL、CMOS、LVTTL、LVCMOS都是神马
常见逻辑电平标准现在常用的电平标准有TTL、CMOS、LVTTL、LVCMOS、ECL、PECL、LVPECL、RS232、RS485等,还有一些速度比较高的 LVDS、GTL、PGTL、CML、HSTL、SSTL等。下面简单介绍一下各自的供电电源、电平标准以及使用...
GPIO 引脚模式 打开时钟位置
1、GPIO的输出(1)GPIO_Mode_AIN模拟输入(2)GPIO_Mode_IN_FLOATING浮空输入(3)GPIO_Mode_IPD下拉输入(4)GPIO_Mode_IPU上拉输入(5)GPIO_Mode_Out_OD开漏输出(6)GPIO_Mode_Out_PP推挽输出(7)GPIO_Mode_AF_OD复用开漏输出(8)GPIO_Mode_AF...
51单片机Keil C延时程序的简单研究
以前用汇编语言写单片机程序的时候,这个问题还是相对轻易解决的。比如用的是12MHz晶振的51,打算延时20us,只要用下面的代码,就可以满足一般的需要: mov r0, #09hloop: djnz r0, loop51单片机的指令周期是晶振频率的1/12,也...
单片机与PLC详细比较
要搞清楚单片机与PLC的异同,首先得明确什幺是单片机,什幺是PLC。对此,我们简要回顾一下计算机的发展历程也许有帮助,按计算机专家的原始定义, 计算机系统由五大部分--即控制单元(CU)、算术运算单元(ALU)、存储器(Memory)、输入设...
STM32达人的GPIO使用心得
1. 我使用GPIO的不同就是,GPIO 操作是直接动用了STM32内部的寄存器的.虽说库好用,但对于某些IO 操作,很多人都会嫌库的效率底下(包括我自己在内),总得对STM32 的寄存器看两眼的吧,不然还不敢叫STM32 达人!2. 当然了,...
晶振的低功耗设计
实际应用中发现,这一现象在上电复位时并不十分明显,这是由于上电时电路有足够的扰动,振荡很容易建立起来。在 MCU 被从睡眠中唤醒时,此时电路的扰动要比上电时小得多,起振变得很不容易。在振荡回路中,晶体既不能过激励,过激...
外部中断的按键,软件滤波实现方法
按键分为机械按键和触摸按键,每种按键都有不同程度的抖动。这里我们来说下机械按键吧,新手都会接触到。我用的板子是MSP430G2553 的那块红色的板子做的。上面的独立按键有一个,接在P13口上,我自己制作了一个LCD5110的转接...
【详解】关于msp430g2553的捕获
写一个脉冲频率测量的程序先确定测频的方法--脉冲填充法被测信号 ____| |___________| |_____填充的脉冲 ||||||||||||||||||定时计数器CCR(第1次) CCR(第2次)2次捕获后的捕获寄存器的值相减就是填充的脉冲数若SMCLK的频...
TinyOS下CC2430单片机ADC使用方法
1.TinyOS提供的组件和接口开源组织TinyOS 8051 working group 提供可以移植到CC2430EM平台上的TinyOS,该平台TinyOS含有可用于控制CC2430单片机ADC的组件AdcC:components new AdcC(); // 用于控制CC2430 ADC该组件可将P0...
提高C8051F350中ADC精度应注意的一些问题
总结一下影响精度的主要原因:1、采样速率、字输出速率和抽取比决定了ADC的有效分辨率和精度;2、信号差分与单端输入,差分的精度要高的多;3、F350本身的基准电压很稳定,但绝对精度不高(不是准确的2.5V),这点不影响测量精度(乘个...
单片机_C语言函数_中断函数(中断服务程序)
在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题。(1)中断源:中断请求信号的来源。(8...
在verilog中调用VHDL模块
今天在用vivado进行块设计时所生成的顶层模块居然是用VHDL语言描述的,这时郁闷了,表示只看过VHDL语法但没写过。暂且不说VHDL模块的内容,我应该如何在测试平台中例化它并对它进行测试呢?稍微查了一下,其实很简单,只要把VHDL...
单片机多字节串口接收
串口接收程序是基于串口中断的,单片机的串口每次接收到一字节数据产生一次中断,然后再读取某个寄存器就可以得到串口接收的数据了。然而在实际应用当中,基本上不会有单字节接收的情况。一般都是基于一定串口通信协议的多...
Keil 中头文件INTRINS.H的作用
Introduction:Intrins.h内部函数 描述_crol_ 字符循环左移_cror_ 字符循环右移_irol_ 整数循环左移_iror_ 整数循环右移_lrol_ 长整数循环左移_lror_ 长整数循环右移_nop_ 空操作8051 NOP 指令_testbit_测试并清零位8...
51单片机多任务操作系统的原理与实现
流行的uCos,Tiny51等,其实都不适合在2051这样的片子上用,占资源较多,唯有自已动手,以不变应万变,才能让51也有操作系统可用.这篇贴子的目的,是教会大家如何现场写一个OS,而不是给大家提供一个OS版本.提供的所有代码,...
单片机系统中经常采用的滤波方法
1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断:如果本次值与上次值之差A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起...