打印

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

[复制链接]
493|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
尤彼卡|  楼主 | 2016-9-29 20:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自己写的查询法发送数据代码如下:分析一下代码有没有错误?

/*************发送一个字节*********/
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!='\0')
   {
     Send_Char(*P);
     P++;
   }
}


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

相关帖子

沙发
Stannis| | 2016-9-29 20:49 | 只看该作者
中断发送比较复杂,首先要有个队列,要进行队列管理。
发送的时候,把数据放入队列内,然后开发送中断。
队列为空的时候,关中断。

使用特权

评论回复
板凳
Rangar| | 2016-9-29 21:12 | 只看该作者
要防止变量的写冲突,在写某些共享的变量时要关中断。

使用特权

评论回复
地板
Bjorn| | 2016-9-29 21:40 | 只看该作者
1 时钟配置,串口波特率,使能等参数配置
2 开启串口中断
3.开启总中断。
4.void Send_String(unsigned char *String)  函数中将P设置为全局变量,在发送第一个字符之前赋值P=String;
5,将Send_String函数放到你的中断服务函数里面
6.void Send_Char(unsigned char Ch)     这个删掉,用TXBUF0=*P;替代就OK了
7,中断服务函数里面。
IRQ...(void)
{
TXBUF0=*p;
p++;
//然后清除标志位

}

使用特权

评论回复
5
Thorald| | 2016-9-29 22:01 | 只看该作者
发送数据的时候,写好缓冲区然后使能发送中断。
中断里面,缓冲区为空的时候,就要禁止中断了。

使用特权

评论回复
6
uytyu| | 2016-9-29 23:10 | 只看该作者
中断收发吗?

使用特权

评论回复
7
uytyu| | 2016-9-29 23:12 | 只看该作者
清空过中断标志吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

116

主题

774

帖子

1

粉丝