自己编写STC15F2K60S2函数之串口2通信初始化

 时间:2024-11-06 17:08:16

1、#include <STC15F2K60S2.H>

2、/*****函数名:串行口2初始化调用:Serial2Ini();参数:无备注:串行口2只有8位可变波特率和9位可变波特率2种方式,而且只能使用定时器2作为波特螟苋镔柞率发生器,而定时/计数器2只有一种工作方式——16位自动重装方式。*****/void Serial2Ini(){ S2CON = 0x10; //S2SM0 | 空|S2SM2 |S2REN |S2TB8 |S2RB8 |S2TI |S2RI(方式0即8位可变波特率方式;允许接收) T2L = 0xE8; //此时,波特率=定时器2的溢出率/4 T2H = 0xFF; //通过T2L和T2H的值设置波特率为9600 AUXR &= 0xE3;//先对需要设置的位进行清零 1110 0011 AUXR |= 0x10; //T0x12 | T1x12 | UART_M0x6 |T2R|T2_C/T(T上画)|T2x12| EXTRAM | S1ST2 启动定时器2,即T2R=1;12T IE2 &= 0xFE; //先对需要设置的位进行清零 1111 1110 IE2 |= 0x01; //- - - - - - - | ESPI |ES2允许UART2中断 EA = 1; //允许总中断}

3、void main(void){ Serial2Ini(); //运行串口2初始化函数 while(1){ } //等待中断()}

4、oid Uart2(void) 坡纠课柩interrupt 8 using 2{ unsigned char mydata稆糨孝汶; if(S2CON & 0x01) //如果是接收中断 { S2CON &= 0xFE; //接收中断标志位清0 mydata = S2BUF; //将接收缓冲区的数据保存到mydata变量中 S2BUF = ~mydata; //将接收到的数据按位取反后发回 } if(S2CON &0x02) //如果是发送中断 { S2CON &=0xFD; //发送中断标志清0 }}

  • 如何使用AD9利用向导画PCB贴片封装
  • 如何关闭Altium Design的自动保存功能
  • Altium Designer 2016工程文件的建立与保存
  • altium designer如何设置关闭online DRC
  • Altium Designer怎么关闭保护锁定的对象
  • 热门搜索
    朋友圈推广一天30元 满脸痤疮怎么办 骨癌是怎么引起的 雍正皇帝怎么样 如何设置呼叫转移 如何避孕 郑州四中怎么样 怎么修改电脑字体 如何选择股票 万能充电器怎么用