历史上的今天
今天是: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上代码无错误。
史海拾趣
|
伙计们: 作为FPGA初学者,或已经工作,但是接触机会不多,又想学好它的人来说,有一个开发板是不错的。 可是这些人一般不会了解哪个好,那个不好。那就请高手来介绍或者指导买哪家的了。 在此,也强烈建议论坛开展一个diyFPGA开发板的活动… 查看全部问答> |
|
我已经从把摄像头采集的数据保存使用 mmap 内存映射来获取了图像,当用write函数得出的是jpeg格式的 我想得到bmp格式的图片怎么做,跪求,急用。谢谢各位。 … 查看全部问答> |
|
用verilog HDL 实现一个网络加密的算法(md5),有没有哪位高手能给点帮助,我邮箱是poppy220@126.com 先谢过啦!^_^ … 查看全部问答> |
|
附件为在使用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 ...… 查看全部问答> |
|
想扩展个NOR FLASH ,SDRAM,FPGA,想问下各位,能实现吗?我是说都用EPI连接?可是手册上说配EPI的模式不同,如何实现?谢谢。 如果用MCU到FPGA,再到SDRAM,,不就多此一举了吗, 如果用I2C的或者SPI的FLASH,程序是不是得先考到RAM里? … 查看全部问答> |




