使用接收中断,将接收到的字符再发送出去。每次接收到字符之后都会退出低功耗模式,从而在主函数中将接收到的字符再发送出去。
/**********************************************
*程序描述:单片机的P3.4、P3.5作为串口接收字符,将接受到的字符再发送出去
***********************************************/
#include void usartInit(void); //串口初始化
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
usartInit();
while(1){
_BIS_SR(LPM3_bits + GIE); // Enter LPM3 w/ interrupt
while((UTCTL0&TXEPT)==0);//等待数据发送完毕
TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0
}
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
LPM3_EXIT;
}
/****************************************************************************
*函数名: uartInit() /
*作用 :USART0的初始化配置,使用P3.4和P3.5,使用接收中断 /
*返回值:无 /
*****************************************************************************/
void usartInit(){
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x03; // 32k/9600 - 3.41
UBR10 = 0x00; //
UMCTL0 = 0x4A; // Modulation
UCTL0 &= ~SWRST; // Initialize USART state machine
IE1 |= URXIE0; // Enable USART0 RX interrupt
}
关键字:MSP430 串口接收 中断
引用地址:
MSP430串口接收程序(使用中断)
推荐阅读最新更新时间:2024-11-04 10:10
浅析STM32F0系列中断向量映射问题如何解决
最近用Cortex-M0内核的STM32F030K6T6做个东西,需要做IAP升级,发现它的中断向量与M3、M4等内核的单片机不太一样,这里分享给大家。 IAP升级需要一个BootLoader程序,一个应用程序。BootLoader程序直接烧写到flash起始地址就行,中断向量也不用改。但是应用程序需要烧写到BootLoader程序后面,且中断向量必须重新映射。 M3、M4等内核的单片机,直接修改中断向量的偏移地址(VECT_TAB_OFFSET)就行。但在M0内核的库中,根本就没有这个定义。查阅相关资料发现,M0内核的中断向量需要用户自己从Flash映射到RAM中,即0x20000000地址。 实际操作也很简单,在程序开始加上这
[单片机]
基于VB6.0 的MSP430 单片机与PC 机串口通信设计
1 引言 随着计算机技术的不断发展,计算机应用在其发展过程中逐步形成两大分支,一是通用计算机,PC 机为代表,着眼于高速数值运算和数据处理,但实时测控能力较弱。二是嵌入式微机,以单片机为代表,着重发展测控技术,但其数值运算和数据处理能力较弱。目前,在工业控制以及数据采集和数据处理的大型系统中,由于PC 机软件资源丰富,人机交互方便等优点。以PC 机作为上位机,以单片机组成的控制单元作为下位机,较好地实现测控及显示,又能较快地实现数据采集和处理。逐渐成为现代工业控制领域的一个优化方案。 故提出了基于VB6.0 的PC 机与MSP430 单片机串行通信的实现方法。以RS485 接口为基础,以PC 机为上位机,以MSP4
[单片机]
MSP430功能模块详解系列之——TimerA
定时器A是一个16位的定时/计数器。它有3个捕获/比较寄存器;能支持多个时序控制、多个捕获/比较功能和多个PWM输出;有广泛的中断功能,中断可由计数器溢出产生,也可以由捕获/比较寄存器产生。 一、TimerA的4种工作模式 1.停止模式 用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。 2.增计数模式 捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器。因为CCR0为16位寄存器,所以该模式适用于定时器周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CC
[单片机]
【MSP430】捕获模式测量信号占空比
代码来自2016北斗杯,用于测量空气pm2.5,该传感器通过测量信号的占空比估计颗粒浓度 (1)TimerB设置,工作在捕获模式: void TimerB_Init(){ TBCCTL0&=~(CCIS1+CCIS0); // 捕获源为P4.0,即CCI0A(也是CCI0B) TBCCTL0|=CM_2+SCS+CAP; //下降沿捕获,同步捕获,工作在捕获模式 TBCCTL0|=CCIE; //允许捕获比较模块提出中断请求 TBCTL|=ID_3; TBCTL|=TBSSEL_2; //选择时钟MCLK TBCTL|=TBCLR;
[单片机]
中断的响应,两级中断嵌套,中断优先级别设置
;知识要点:中断的应用;熟悉中断的地址入口,中断的返回与响应;中断的优先级 ;开始主程序数码管显示0,按p32显示1,延时10秒返回主程序 ;按p33显示2 延时2秒返回主程序, ;如果按p32显示1后再按p33,那么显示完成后继续显示1,完成后返回主程序显示0 ;由于p33的优先级别高, 首先响应,请仔细体会这个程序 ORG 0000H LJMP MAIN;跳到主程序 ORG 0003H;中断0 入口 LJMP INSER0;到中断服务0 ORG 0013H;中断1入口地址 LJMP INSER1;到中断服
[单片机]
基于MSP430F169的光伏并网发电模拟装置
引言 目前,煤炭、石油等能源正走向枯竭,且环境污染问题也日益严重,新能源和可再生能源的利用已经成为世界各国的燃眉之急。作为一种无污染的可再生能源,太阳能越来越受到人们的青睐。太阳能光伏并网发电产业迅速发展对人们提出的可持续发展有重大的意义。本设计利用锁相环倍频、比较器过零触发和MSP430F169单片机DA产生与输入信号同频同相且幅值可控的正弦波,作为DA-AC电路的输入参考信号,其中DA-AC电路采用D类功放中自激反馈模型,利用负反馈的自激振荡产生正弦波脉宽调制(SPWM)波,通过硬件之间的配合,实现了逆变电压输出及最大功率、同频同相的跟踪。 装置方案的选用 DC-AC逆变方案:采用D类功放中自振荡式模型的逆变拓扑,利用负
[单片机]
STM32中断进行分组
STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个) 中断管理方法 首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。 分组配置是在寄存器SCB- AIRCR中配置: 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。 抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。 抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。 如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行。
[单片机]
MSP430学习笔记3----定时器学习
先给出框图 随便从百度文库上找了个定时器程序,分析下。 1 #include msp430g2553.h 2 void main (void) 3 { 4 WDTCTL = WDTPW + WDTHOLD; 5 6 7 TA1CTL|=TASSEL_2+TACLR+MC_3+ID_3;//采取内部时钟源1.04M,八分频,增减计数模式 8 TA1CCTL0=CCIE;//启用定时器中断 9 TA1CCR0=65535;//计数1S 10 P1DIR|=BIT0; 11 _EINT(); 12 //LPM4; 13 while(1); 14 } 15 #pragma vecto
[单片机]