#include "H/Function_Init.H" #include "stdio.h" bit UartSendFlag = 0; //发送中断标志位 bit UartReceiveFlag = 0; //接收中断标志位 char putchar(char c)//重定向 { UartSendBit(c); return c; } /***************************************************** *函数名称:void Uart0_Init(void) *函数功能:Uart0中断初始化 *入口参数:void *出口参数:void *****************************************************/ void Uart0_Init(void) //选择Timer1作为波特率信号发生器 { P1CON &= 0XF3; P1PH |= 0X0C; //TX/RX为带上拉输入; P13 = 1; //TX初始高电平; SCON = 0X50; //方式1,允许接收数据 PCON |= 0X80; T2CON = 0x00; //使用定时器1作UART时钟 TMOD = 0X20; //定时器1 8位自动重载 TMCON = 0X02; //定时器1 Fsys; TL1 = 217; TH1 = 217; //UART 波特率24M情况下=38400; TR1 = 1; //启动Timer0 EUART = 1; //允许UART中断 EA = 1; //开总中断 } /* void Uart0_Init(void) //选择Timer2作为波特率信号发生器 { P1CON &= 0XF3; P1PH |= 0X0C; //TX为强推输出,RX为带上拉输入; SCON = 0X50; //设置通信方式为模式一,允许接收 PCON |= 0X80; TMCON |= 0X04; T2MOD = 0X00; T2CON = 0X30; RCAP2H = 0xFF; RCAP2L = 0xB2; TR2 = 1; EUART = 1; //开启Uart0中断 EA = 1; } */ /***************************************************** *函数名称:void UartInt(void) interrupt 4 *函数功能:Uart0中断服务函数 *入口参数:void *出口参数:void *****************************************************/ void UartInt(void) interrupt 4 { if(TI) { TI = 0; UartSendFlag = 1; } if(RI) { RI = 0; UartReceiveFlag = 1; } } /***************************************************** *函数名称:void UartSendBit(unsigned char c) *函数功能:Uart0中断服务函数 *入口参数:void *出口参数:void *****************************************************/ void UartSendBit(unsigned char c) { SBUF = c; while(!UartSendFlag); UartSendFlag = 0; } 复制#include "H/Function_Init.H" #include "stdio.h" /************************************************************** 说明: 1、Options for Target‘Target1’:BL51 Locate->Code Range:0x100,烧录选项请选择DISRST,复位脚作为普通IO使用; 2、改变TEST的定义,可以分别测试对应的功能; 3、注意:先在Function.H里面选择测试型号(SC92F7320无LCD/LED和PWM功能) ***************************************************************/ #define Test 5 //BTM:0 EXTI:1 Timer:2 LCD:3 PWM:4 Uart0:5 ADC:7 IAP:8 void main(void) { IO_Init(); WDTCON |= 0x10; //清看门狗 Uart0_Init(); while(1) { printf("Hello SC92F7321!\r\n");; } switch(Test) { case 0: BTM_Test(); break; case 1: EXTI_Test(); break; case 2: Timer_Test(); break; case 3: LCD_Test(); break; case 4: PWM_Test(); break; case 5: //Uart0_Test(); break; case 7: ADC_Test(); break; case 8: IAP_Test(0x1fff,IapROM); //操作ROM,对地址0x1fff进行读写测试 // IAP_Test(0x7f,IapEPPROM); //操作EPPROM,对地址0x7f进行读写测试 break; default: break; } }
#include "H/Function_Init.H" #include "stdio.h" /************************************************************** 说明: 1、Options for Target‘Target1’:BL51 Locate->Code Range:0x100,烧录选项请选择DISRST,复位脚作为普通IO使用; 2、改变TEST的定义,可以分别测试对应的功能; 3、注意:先在Function.H里面选择测试型号(SC92F7320无LCD/LED和PWM功能) ***************************************************************/ #define Test 5 //BTM:0 EXTI:1 Timer:2 LCD:3 PWM:4 Uart0:5 ADC:7 IAP:8 void main(void) { IO_Init(); WDTCON |= 0x10; //清看门狗 Uart0_Init(); while(1) { printf("Hello SC92F7321!\r\n");; } switch(Test) { case 0: BTM_Test(); break; case 1: EXTI_Test(); break; case 2: Timer_Test(); break; case 3: LCD_Test(); break; case 4: PWM_Test(); break; case 5: //Uart0_Test(); break; case 7: ADC_Test(); break; case 8: IAP_Test(0x1fff,IapROM); //操作ROM,对地址0x1fff进行读写测试 // IAP_Test(0x7f,IapEPPROM); //操作EPPROM,对地址0x7f进行读写测试 break; default: break; } }
举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
发帖类勋章
人才类勋章
等级类勋章
时间类勋章
49
1393
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号