历史上的今天
返回首页

历史上的今天

今天是:2025年03月23日(星期日)

正在发生

2020年03月23日 | MSP430 串口接收指令控制LED亮灭

2020-03-23 来源:eefocus

准备器材:MSP430开发板一块,串口线,PC,串口调试助手(可从网上下载) 

八位数据,1个停止位,9600波特率无校验


/********************************************************************

//DM430-L型最小系统板串口测试程序,使用单片机的串口0

//使用板载BSL模块或者用户外接串口线到DB9,要求是直连公对母串口线

//使用串口调试助手发送数据到系统板,比如02,03等

//系统板会将收到的数据再发送到串口调试助手,接收采用中断模块,发送用查询

//板载的BSL模块可以通过跳线帽设置为USB转串口模式,笔记本电脑没有串口可以直接代替

//开发板的BSL_Config区的RXD和TXD0连接,TXD和RXD0连接即可,另外2个跳线帽取下

//使用USB转串口功能时,BSL失效,因此操作前应该先将程序下载至芯片中再调整跳线帽

//MSP430F149

********************************************************************/


#include

#include "Config.h"


//*************************************************************************

//               MSP430串口初始化

//*************************************************************************

void UART_Init()

{

  U0CTL|=SWRST;               //复位SWRST

  U0CTL|=CHAR;                //8位数据模式 

  U0TCTL|=SSEL1;              //SMCLK为串口时钟

  U0BR1=baud_h;               //BRCLK=8MHZ,Baud=BRCLK/N

  U0BR0=baud_l;               //N=UBR+(UxMCTL)/8

  U0MCTL=0x00;                //微调寄存器为0,波特率9600bps

  ME1|=UTXE0;                 //UART1发送使能

  ME1|=URXE0;                 //UART1接收使能

  U0CTL&=~SWRST;

  IE1|=URXIE0;                //接收中断使能位


  P3SEL|= BIT4;               //设置IO口为普通I/O模式

  P3DIR|= BIT4;               //设置IO口方向为输出

  P3SEL|= BIT5;

}


//*************************************************************************

//              串口0发送数据函数

//*************************************************************************


void Send_Byte(uchar data)

{

  while((IFG1&UTXIFG0)==0);          //发送寄存器空的时候发送数据

    U0TXBUF=data;

}


//*************************************************************************

//               处理来自串口 0 的接收中断

//*************************************************************************

#pragma vector=UART0RX_VECTOR

__interrupt void UART0_RX_ISR(void)

{

  uchar data=0;

  data=U0RXBUF; //接收到的数据存起来

  switch(data)

  {

    case'1':P6OUT ^= BIT0;break;                //打开LED1(再次则熄灭)

    case'2':P6OUT ^= BIT1;break; 

    case'3':P6OUT ^= BIT2;break; 

    case'4':P6OUT ^= BIT3;break; 

    case'5':P6OUT ^= BIT4;break; 

    case'6':P6OUT ^= BIT5;break; 

    case'7':P6OUT ^= BIT6;break; 

    case'8':P6OUT ^= BIT7;break; 

    default:P6OUT = 0xFF;break;  //熄灭所有的LED

  }

  Send_Byte(data);                    //将接收到的数据再发送出去

}


//*************************************************************************

//            处理来自串口 0 的发送中断,预留

//*************************************************************************


#pragma vector=UART0TX_VECTOR

__interrupt void UART0_TX_ISR(void)

{


}


//*************************************************************************

//           主函数

//*************************************************************************

void main(void)

  WDT_Init();  //看门狗初始化

  Clock_Init(); 

  P6DIR = 0xFF;//选择P6口,设置输出方向

  UART_Init();          

  _EINT(); 

  while(1)

  {

  }

}


经测试在IAR for 430上代码无错误。

推荐阅读

史海拾趣

Electronic Concepts Inc公司的发展小趣事

ECI成立于20世纪90年代初,当时正值电子产业快速发展的浪潮。公司创始人李先生,一位有着丰富电子行业经验的工程师,看准了市场对定制化电子解决方案的需求,决定创立ECI。然而,初创时期资金紧张、人才匮乏,李先生不得不身兼数职,既要做研发,又要跑市场。在一次偶然的机会下,ECI成功为一家大型企业提供了定制化的电子控制模块,这一项目不仅为公司带来了可观的收入,也为ECI赢得了良好的口碑。

EIC [EIC discrete Semiconductors]公司的发展小趣事

EIC公司非常重视人才培养和团队建设。公司注重员工的技能培训和职业发展规划,为员工提供了广阔的发展空间和良好的职业前景。同时,EIC还积极引进国内外优秀人才,打造了一支高素质、专业化的研发团队和管理团队。这些人才为公司的发展提供了强有力的智力支持,也为公司的持续创新提供了源源不断的动力。

台湾丰宾(CapXon)公司的发展小趣事

CapXon公司一直高度重视品质管理,建立了完善的质量管理体系和检测机制。公司严格把控原材料采购、生产过程、成品检验等各个环节,确保产品的品质符合国际标准和客户要求。同时,CapXon还不断优化生产流程,提高生产效率,降低生产成本,为客户提供更具竞争力的价格和服务。

Cableform Inc公司的发展小趣事

Cableform Inc公司起源于一位名叫约翰·卡贝尔的电气工程师的创意。在20世纪中期,约翰看到了电子工业的巨大潜力,特别是在电磁控制领域。于是,在1945年,他创立了Cableform Inc,专注于研发和生产电磁控制设备。起初,公司只有几名员工,面临着资金短缺和技术挑战。然而,约翰凭借着对技术的执着和对市场的敏锐洞察,成功设计出了一款具有竞争力的磁铁控制器,为公司的发展奠定了基石。

Agilent Technologies公司的发展小趣事

2012年,对于Cableform Inc来说是一个重要的转折点。这一年,公司成功加入了HUBBELL系列,与Hubbell工业控制有限公司建立了战略合作关系。这一合作使得Cableform Inc能够借助Hubbell的品牌影响力和市场渠道,进一步拓展业务范围,提升市场地位。同时,通过与Hubbell的技术交流和资源共享,Cableform Inc在技术创新和产品升级方面也取得了显著进展。

Coors Components Inc公司的发展小趣事

在面对激烈的市场竞争时,Coors Components Inc公司果断调整市场策略,将目标市场从高端用户转向中端市场。通过优化产品线、提升服务质量以及加强品牌营销,公司成功吸引了大量中端市场的消费者。这一策略调整不仅使公司的销售额大幅提升,还为其未来的发展奠定了坚实的基础。

问答坊 | AI 解惑

关于FPGA开发板信息

伙计们: 作为FPGA初学者,或已经工作,但是接触机会不多,又想学好它的人来说,有一个开发板是不错的。 可是这些人一般不会了解哪个好,那个不好。那就请高手来介绍或者指导买哪家的了。 在此,也强烈建议论坛开展一个diyFPGA开发板的活动…

查看全部问答>

为什么我的按键中断在程序启动的时候总自动进入

为什么我的按键中断在程序启动的时候总自动进入,不是按下按键以后,而是程序一运行的时候就自动进入中断函数,请问这是什么原因呢?…

查看全部问答>

怎样从内存中读取摄像头采集的数据保存成bmp格式

我已经从把摄像头采集的数据保存使用 mmap 内存映射来获取了图像,当用write函数得出的是jpeg格式的 我想得到bmp格式的图片怎么做,跪求,急用。谢谢各位。 …

查看全部问答>

用verilog HDL 实现网络加密算法md5

用verilog HDL 实现一个网络加密的算法(md5),有没有哪位高手能给点帮助,我邮箱是poppy220@126.com 先谢过啦!^_^ …

查看全部问答>

关于STM32外设初始化时,时钟配置的列表

附件为在使用STM32外设,进行初始化时,各个外设需要对哪些时钟进行配置的列表。希望大家对该文件的内容多提意见,我们将对其进行修改,使得大家在使用STM32时有所帮助。 相关链接:https://bbs.eeworld.com.cn/upfiles/img/20093/200931217123 ...…

查看全部问答>

一个很莫名其妙的问题

最近刚刚开始接触STM32,今天调试串口的时候发现一个很无奈的问题,源代码基本都是使用keil自带的demo,就不列举了。修改以下这些设置:/* PLLCLK = 12MHz * 6= 72 MHz */     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6 ...…

查看全部问答>

9b96的EPI能同时连几个外设?

想扩展个NOR FLASH ,SDRAM,FPGA,想问下各位,能实现吗?我是说都用EPI连接?可是手册上说配EPI的模式不同,如何实现?谢谢。 如果用MCU到FPGA,再到SDRAM,,不就多此一举了吗, 如果用I2C的或者SPI的FLASH,程序是不是得先考到RAM里?  …

查看全部问答>

求指导

老师最近给了一个电动汽车电池管理系统(BMS)设计的方向,小弟有一点编程、数电、模电、fpga的基础。也看了一些BMS相关论文的论文,但始终不知道如何着手去做。 求高人指导,比如还应学习什么基础知识之类的…

查看全部问答>

秒计时器,求高帮忙

  u(一)功能简述 :   u 通过单片机系统实现秒表计时功能,可以进行暂停计时、恢复计时、设定时间和清零等操作。   u(二)设计要求 :   u系统上电,数码管显示“99”. u每隔1秒,数码管显示减1,减小到“00”后 ...…

查看全部问答>

一阶无源惯性低通滤波器的单片机实现

那位大虾帮忙下。。一阶无源惯性低通滤波器的单片机实现。。要求采用单片机采用离散化处理后,来实现滤波功能 不太懂。。。…

查看全部问答>