MSP430串口采用中断方式发送问题

2019-03-24 09:05发布

自己写的查询法发送数据代码如下:分析一下代码有没有错误?

/*************发送一个字节*********/
void Send_Char(unsigned char Ch)          //发送一个字节
{
  TXBUF0=Ch;
  while(!(IFG1&UTXIFG0));                    //等待发送完毕 !(IFG1&UTXIFG0)为0发送未完成  当!(IFG1&UTXIFG0)为1
  IFG1&=~UTXIFG0;                           //发送标志位清零
}
/**********发送一组字符串*********/      
void Send_String(unsigned char *String)    //发送一组字符串
{
    uchar *P;
    P=String;   
  while(*P!='')
   {
     Send_Char(*P);
     P++;
   }
}


现在想采用中断的方式发送数据,不知道怎么发送,什么时候发送,发送标志如何产生,一头水雾不知道怎么解决  希望贴友们的大力指导。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
lcofjp
1楼-- · 2019-03-25 10:09
李嘉辉 发表于 2016-7-22 13:49
程序一开始运行发送中断使能打开,进入中断因为没有要发的东西有跳出来了,此时标志位UTXIFG0为0,下次进 ...

中断使能肯定是要在发送函数和中断函数中同时控制的。
发送数据的时候,写好缓冲区然后使能发送中断。
中断里面,缓冲区为空的时候,就要禁止中断了。
yl20084784
2楼-- · 2019-03-25 15:04
 精彩回答 2  元偷偷看……
李嘉辉
3楼-- · 2019-03-25 19:44
lcofjp 发表于 2016-7-22 14:40
中断使能肯定是要在发送函数和中断函数中同时控制的。
发送数据的时候,写好缓冲区然后使能发送中断。
...

ME1 = USPIE0;  和 ME1 |= USPIE0;  有什么区别
有些函数初始化写的是ME1 = USPIE0; 有得写的是 ME1 |= USPIE0;  
lcofjp
4楼-- · 2019-03-25 23:39
李嘉辉 发表于 2016-8-4 10:30
ME1 = USPIE0;  和 ME1 |= USPIE0;  有什么区别
有些函数初始化写的是ME1 = USPIE0; 有得写的是 ME1 |= ...

就是直接赋值和置某些位的区别,后面的写法不改变其他的比特位。
李嘉辉
5楼-- · 2019-03-26 00:27
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章