需要硬件:USB转TTL
TTL插电脑 ,再杜邦线连接430
现象:串口助手显示01 02 03 04 05 06 07 08

直接上代码

/*************************
发送数据帧的程序
利用发送中断,发送过程不阻塞CPU继续执行后续代码
Author:七禾页8
site:创客基地缺点:必须整帧地发送数据。
需要将一次发送的数据都先整理完毕才能启动发送,
且必须等待上一帧发完才能启动下一帧的发送,
不能在程序中随时地按字节发送数据
**************************/#include "msp430x14x.h"#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
#define TXBUF_SIZE 32   //一帧最多能发送的数据字节数
unsigned char TX_BUFF[TXBUF_SIZE];      //发送缓冲区
unsigned char TX_NUM;     //发送字节总数变量
unsigned char TX_CNT;     //发送字节计数变量/*******************************
*名称:UART0_PutFrame()
*功能:从串口发送1帧数据
*入口参数:Ptr:待发送数组的首地址(数组名)Lenth:数据帧长度
*出口参数:返回1表示成功返回0表示失败
*说明:发送过程中,不阻塞CPU运行
********************************/
char UART0_PutFrame(unsigned char*Ptr,unsigned int Lenth)
{int i;if(IE1 & UTXIE0)return (0);   //如果上一帧没发送完,返回0if(Lenth>TXBUF_SIZE)return(0);    //长度超过最大缓冲区,返回0for(i=0;i<Lenth;i++){TX_BUFF[i]=Ptr[i];    //待发送数据装填进入发送缓冲区}TX_CNT = 0;   //发送字节数清0TX_NUM = Lenth;   //发送字节总数IFG1 |= UTXIFG0;    //人为制造第一次发生中断IE1 |= UTXIE0;  //允许UART0的发送中断return(1);      //返回发送成功
}/*************************
发送中断
**************************/
#pragma vector = UART0TX_VECTOR
__interrupt void UART0_TX(void)   //串口发送中断
{U0TXBUF = TX_BUFF[TX_CNT];      //将本次应该发送的数据送入TXBUFTX_CNT++;     //下一次 依次发送后续字节if(TX_CNT >= TX_NUM)      //发送字节计数到达发送总数{IE1 &= ~UTXIE0;    //禁止UART0的发送中断,停止发送}
}/********************时钟初始化
***********************/
void BCS_Init()
{uchar j;WDTCTL = WDTPW + WDTHOLD;   //关闭看门狗//使用外部高频晶体振荡器BCSCTL1&=~XT2OFF;       //使用外部XT2晶振8Mdo{IFG1&=~OFIFG;    for(j=0XFF;j>0;j--);}while((IFG1&OFIFG));    //等待晶振震荡平稳BCSCTL2|=SELM_2;        //MCLK选择XT2
}/********************
IO初始化
***********************/
void IO_Init()
{P3DIR|=BIT4;      //P3.4  UTXD0设置为输出P3DIR&=~BIT5;     //P3.5  URXD0设置为输入P3SEL|=BIT4+BIT5;     //开启第二功能 (通信功能)
}/********************
通信初始化
***********************/
void communication_Init()
{ME1 |= UTXE0 + URXE0;  // 使能USART0收发UCTL0 |= CHAR + SWRST;     // 8-bit 数据,一位停止位 SWRST=1 设置串行口UTCTL0 |= SSEL0;           // 选择时钟,UCLK = ACLK,32768UBR00 = 0x03;    // 32k/9600选择ACLKUBR10 = 0x00;   //UMCTL0 = 0x4a;            // ModulationUCTL0 &= ~SWRST;    // 初始化UART0状态机,一般要设置好串口之后才复位P2DIR |= BIT0;
/*************在初始化代码中增加下面两句*************/IE1 |= URXIE0 + UTXIE0;           // URXIE0允许接收中断 + UTXIE0允许发送中断_EINT();     //总中断允许
}void main( void )
{uchar TxTestBuff[8]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};BCS_Init();     //时钟初始化IO_Init();      //IO初始化communication_Init();   //通信初始化while(1){UART0_PutFrame(TxTestBuff,8);     //发送一个长度约为8B的数据帧__delay_cycles(10000000);           //约一秒发送一次}
}

MSP430异步通信(发送)不阻塞CPU,含注释相关推荐

  1. msp430单片机接收(FIFO实现)不阻塞CPU

    /**************** UART的高效率使用 串口接收一字节程序, 要求利用FIFO结构与接收中断 不阻塞CPU继续执行后续代码 且允许CPU随时读串口 Author:七禾页8 site: ...

  2. Python3 发送QQ邮箱(含附件)

    Python3 发送QQ邮箱(含附件) 准备工作: 1.用到的python包:smtplib和email 2.获取qq邮箱授权码:在qq邮箱的设置里面的账户下面,开启POP3/SMTP服务和IMAP/ ...

  3. 开源炫酷css轮播图 可直接引入html文件使用 含注释 jQuery插件

    开源炫酷css轮播图 可直接引入html文件使用 含注释 jQuery插件 1.轮播图样式 上图: 请访问:这里!! 查看轮播图效果. 2.如何在html里面引用 文件的目录路径为: 需要轮播图插件的 ...

  4. 开源超美css动态背景 可直接引入html文件使用 含注释、可更改

    开源超美css动态背景 可直接引入html文件使用 含注释.可更改 1.背景样式 本背景为动态蜘蛛网背景. 上图: 2.如何在html里面引用,作为html背景 1文件目录 放在同一目录下 2 在in ...

  5. python 注释含注释_Python注释

    python 注释含注释 Python注释 (Python comments) Comments in Python are used to improve the readability of th ...

  6. JavaScript事件监听完整实例(含注释)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. foxmail客户单发送html活动页面(含链接跳转)邮件(发送 转发)

    foxmail客户单发送html活动页面(含链接跳转)邮件(发送 转发) 部门市场部一直在推广活动,所以给了一个需求 发送给客户官网活动页面的宣传邮件,并且要求邮件内的链接可以跳转到官网首页.不是很难 ...

  8. JS 实现点击图片查看大图(含注释)

    代码主要实现多个图片,点击其中一个时,将该图片在特定区域放大(含注释),请着重关注JS代码思想. 运行该代码时,注意更换图片地址,如有问题请留言. 代码如下: <!DOCTYPE html> ...

  9. BUAA(2021秋)计算机硬件基础(软件学院计组)P4——用Logisim实现流水线CPU(含测试数据供自测)

    计算机硬件基础(软件学院计组)P4--用Logisim实现流水线CPU 目录 计算机硬件基础(软件学院计组)P4--用Logisim实现流水线CPU 实验内容 实验要求 提交要求 题解 前言及其预备知 ...

最新文章

  1. 第一课:网络参考模型OSI
  2. 八皇后问题python实现_八皇后问题的python实现
  3. docker启动sqlserver_Docker搭建SQLServer
  4. CSS中position属性(abusolute | relative | static | fixed)区别
  5. 03MyBatis的事务管理和缓存机制
  6. MYSQL5.6创建表报错 [ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘
  7. $CH0201$ 费解的开关
  8. 《计算机操作系统》练习题
  9. 平面设计如何才能自学会?需要掌握什么技能?
  10. 神舟战神笔记本Z7M-CT7NA开机进入Bios方法
  11. 流水作业调度 johnson法则
  12. ​Linux 系统 tar 文件压缩打包命令
  13. C++ 万年历、生肖判断、计算第几天
  14. 使用声卡录制编辑收藏自己喜欢的音乐
  15. 小蓝本 第一本《因式分解技巧》第四章 拆项与添项 笔记(第四天)
  16. HIVE报错:Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
  17. 百度地图墨卡托坐标转高德经纬度坐标(偏移小)
  18. windows可以ping通linux虚拟机的ip,但是ping不通主机名称解决方案
  19. process_begin: CreateProcess(...) failed.
  20. 以下是三套目前Web 2.0网站流行试用的颜色元素

热门文章

  1. OUTLOOK2021配置QQ邮箱
  2. 第四讲 介词 (Preposition)
  3. 收藏,全网开发者都在学的26门AI课程!
  4. 代码 if(username.equals(“zxx”){}有什么不妥?
  5. 『随感。』:生活琐事
  6. 8.ExecutorService-执行器服务
  7. 科研日志——使用opencv提取视频中的人脸
  8. 错误解决:Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255]
  9. MT6765 PCB设计资料,MT6765芯片参考资料
  10. CVE-2018-4990 漏洞详情分析