历史上的今天
今天是:2024年10月30日(星期三)
2019年10月30日 | STC15F2系列单片机UART1使用定时器1做波特率发生器
2019-10-30 来源:51hei
#include #include "main.h" #include "intrins.h" //使用T2定时器2 ,控制串口1 波特率 #define FOSC 18432000L //系统频率 #define BAUD 9600 //串口1波特率 #define TM2 (65536-(FOSC/4/BAUD)) #define NONE_PARITY 0 //无校验 #define ODD_PARITY 1 //奇校验 #define EVEN_PARITY 2 //偶校验 #define MARSK_PARITY 3 //标记校验 #define SPACE_PARITY 4 //空白校验 #define PARITYBIT NONE_PARITY //定义校验位 bit busy1 = 0; BYTE c_data; BYTE s_data; void uart1_SendString(char *s); void uart1_SendData(BYTE dat); void main(void) { SCON = 0x50; //八位可变波特率 T2L = TM2; T2H = TM2>>8; AUXR = AUXR_T2R; AUXR |= AUXR_T2x12 AUXR |= AUXR_S1ST2;//使用定时器2 作为串口1的波特率发生器 ES = 1; EA = 1; uart1_SendString("rn stc15f2k08s uart1 test rn"); while(1); } /********************************* 串口1应用 **********************************/ /*UART1 中断服务程序*/ void uart1_ISR() interrupt 4 using 1 { uchar r_data; if(RI) { RI = 0; r_data = SBUF; c_data = RB8; uart1_SendData(r_data); } if(TI) { TI = 0; //清除TI位 busy1 = 0; //清忙标志 } } void uart1_SendData(BYTE dat) { while(busy1); //等待前面的数据发送完成 ACC = dat; // 获取校验位 if(P) { #if (PARITYBIT == ODD_PARITY) { TB8 = 0; //设置校验位为0 } #elif (PARITYBIT == EVEN_PARITY) { TB8 = 1; //设置校验位为1 } #endif } else { #if (PARITYBIT == ODD_PARITY) { TB8 = 1; //设置校验位为1 } #elif (PARITYBIT == EVEN_PARITY) { TB8 = 0; //设置校验位为0 } #endif } busy1 = 1; SBUF = ACC; //写数据到UART 数据寄存器 } void uart1_SendString(char *s) { while(*s) //检测字符串结束标识 { uart1_SendData(*s++); //发送当前字符 } }
史海拾趣
|
飙升的油价,已经成为每个人心灵的痛..... 应对高油价——环保 新型动力车成为新的选择,让我们来认识一下这个未来将替代传统技术的环保动力吧! 专家揭密:丰田Prius汽油/电力混合动力车>>https://bbs ...… 查看全部问答> |
|
嵌入式技术基础与实践,王宜怀,刘晓升 编,清华大学出版社 主要是面向freescale单片机设计。 很好的一本书,现在书讲摩托罗拉单片机的很少。识货的下 … 查看全部问答> |
|
模拟电子电路经典丛书---OP放大电路设计(冈田迪夫) 目录 第1章 OP放大器 1.1 OP放大器的运转 1.2 四种基本的使用方法 1.3 OP放大器的理想状态 1.4 非理想的OP放大器的使用方法 第2章 零点、漂移及噪声 2.1 关于偏置 2.2 零点稳定性的提高 ...… 查看全部问答> |
|
大家好,我是猎头Kevin,现在急聘2位wince和windows平台的驱动开发,base杭州,本科3~4年,月薪8~10K,注大型企业如果技术精湛年薪20万以下都可以谈。有没有人选帮忙推荐啊?我的联系方式是yaochen21@msn.com手机15857144628,急聘中,所以发这里, ...… 查看全部问答> |
|
友善之臂 mini2440 + 3.5\"LCD 套餐 全新的,买来后就没有怎么用过,详细介绍请看: http://www.arm9.net/mini2440.asp 有意的请联系我,卖价400元,不刀谢谢,东西绝对全新的 qq:653338192 另转让1些嵌入式开发的书籍,都是经典的书 有意的 ...… 查看全部问答> |
|
求 TI的二手开发套件 60V、60A Piccolo F28069M、InstaSPIN™-F... 不知道哪位同志,手头有木有二手的 三相电机控制套件:60V、60A Piccolo F28069M、InstaSPIN™-FOC 开发套件,TI的官网买得太贵,如果哪位同志需要出手,请加我QQ 3232291597… 查看全部问答> |




