9S08串口编程.doc_第1页
9S08串口编程.doc_第2页
9S08串口编程.doc_第3页
9S08串口编程.doc_第4页
9S08串口编程.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9S08系列单片机串口编程该文档内容及代码使用的单片机为9S08LG32。1、 串口使用基本步骤l 初始化SCI的IO口,RX设置为输入,TX设置为输出。l 初始化BUSCLK演示代码:/*=* * 函数: Init_Bus20M * 功能: 初始化总线频率BUSCLK为20MHz,使用内部振荡器32.768KHz * 参数: 无 * 返回值: * 备注:系统频率40MHz,总线频率20MHz*=*/ void Init_Bus20M_Internal(void) ICSC2_BDIV = 0;/到总线频率不分频ICSC2_RANGE = 1;ICSC2_HGO = 1; /1ICSC2_EREFS = 1;ICSC2_EREFSTEN = 1;ICSC2_ERCLKEN = 0;ICSTRM = 153;/若要获取精准的BUSCLK,需对ICSTRM进行校准ICSSC_DMX32 = 1;/ 2011.12.4ICSSC_DRST_DRS = 1;/ 2011.12.4ICSSC_IREFST = 1;ICSSC_CLKST = 1;ICSC1_IRCLKEN = 1; /1 ICSIRCLK active The IREFS bit selects the reference clock source for the FLL.ICSC1_CLKS = 0; /01 Internal reference clock is selected.ICSC1_RDIV = 0;ICSC1_IREFS = 1; /1 Internal reference clock selectedSOPT1_COPE = 1;/使能看门狗 LCDC0_SOURCE=0;l 初始化ICS相关寄存器简单的代码演示:void Init_SCI1(void) SCGC1_SCI1 = 1;/把BUSCLK给SCI1SCI1C2_TE= 1; / 发送允许SCI1C2_RE= 1; / 接受允许SCI1C2_RIE = 1; / 允许接收中断SCI1C1 = 0;SCI1BDH = 0x0;/set baud rate 9600,对应20M的BUSCLKSCI1BDL = 0X82;这此例中,把SCI1初始化为最简单的使用方法,接受/发送数据流为:STOP | M | DATA7:0 | STARTl 写中断函数SCIvoid interrupt VectorNumber_Vsci1rx ISR_SCI1_RX(void)SCI1S1_RDRF = 0;/必须清楚RDRF标志static unsigned int i = 0;unsigned char Rx_bufi+ = SCI1D; / 赋值接收到的DATA到变量/add code 。该函数需要在 .h 头文件中申明,VectorNumber_Vsci1rx为中断向量,此处对应SCI1的接受中断。interrupt为中断处理函数关键字。2、 关于串口数据调试读取字符解析,这里图片以485口读上位机指令为例:发送指令为:EB 04 ;其二进制代码:1110 1011 0000 0100电脑发送的字符为 : STOP | M | DATA7:0 | START 。 此格式为:Mbit8为0STOP停止为1;ST

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论