首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]请问大家谁有mcs12dp256这个片的SCI串行通讯收发数据的程序呀.我是初学者请求

我用的是mc9s12xdt512,你参考一下吧

/*************************************************
串口0初始化程序

BaudRate0:要设置的串口波特率
*************************************************/
void sci0_init(void)
{
//SCI0BD=(Clk_Frequece*1000000/BaudRate0/16); // 计算波特率寄存器的值
SCI0BD= 260; // 设置波特率为9600bps,4M晶振,所以总线时钟频率为40M
SCI0CR1=0; // 正常8位模式,无奇偶校验
SCI0CR2=0x2c; // 使能接收中断,使能发送、接收
}

/*************************************************
串口0发送一个字节程序

SendChar:要发送的数据
*************************************************/
void sci0_send(uchar SendChar)
{
while(!SCI0SR1_TDRE); // 等待发送缓冲区空
SCI0SR1_TDRE=1; // 写1清标志位
SCI0DRL = SendChar; // 写SCI数据寄存器
}

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

串口0接收中断程序

*************************************************/
#pragma CODE_SEG NON_BANKED
interrupt void SCI0Recive_ISR(void)
{
SCI0SR1_RDRF=1; // 写1清标志位
SCI0RxData=SCI0DRL; // 读SCI数据寄存器
RxFlag0=1;
sci0_send(SCI0RxData); // 将接收到的数据回送
}
#pragma CODE_SEG DEFAULT

返回列表