完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
//===============================串口初始化===================================== void init_uart0(void) { //====================串口工作模式设置======================================== U0CTL=0x00; // U0CTL包含串口0通信协议、通信模式、校验位等设置,允许UART0 U0CTL +=CHAR; //(CHAR=0x10)当CHAR=0时位7位数据,当 CHAR=1时为8位数据 //不需要校验,数据位为8位,无反馈,异步UART通信,UART被允许 //====================串口发送操作设置======================================== U0TCTL=0x00; //U0TCTL包含串口0发送功能操作 U0TCTL +=SSEL0; //波特率发生器选择ACLK //#define SSEL1 (0x20) #define SSEL0 (0x10) //====================串口拨特率设置9600==================================== //===================拨特率计算公式:拨特率=BRCLK/(UBR+(M7+M6+。。。。+M0)/8) UBR0_0=0x03; //UBR0_0为串口0波特率整数部分低地址 UBR1_0=0x00; //UBR1_0为串口0波特率整数部分高地址 UMCTL_0=0x4A; //UBR1_0为串口0波特率小数部分高地址 //===================串口收发使能控制========================================= ME1 |= UTXE0; //串口0发送功能使能 ME1 |= URXE0; //串口0接收功能使能 //===================串口中断使能控制========================================= // IE1 |= URXIE0; //串口0接收中断使能 // IE1 |= UTXIE0; //串口0发送中断使能 //===================端口第二功能使能========================================= P3SEL |=BIT4; //设置P3。4为UART0 的TXD P3SEL |=BIT5; //设置P3。5为UART0 的RXD P3DIR |=BIT4; //设置P3。4为输出 } //系统初始化 //****************************************************************************** void InitSys() { unsigned int iq0; _DINT(); BCSCTL1 &=~XT2OFF; do { IFG1 &= ~OFIFG; // 清除振荡器失效标志 for (iq0 = 0xFF; iq0 > 0; iq0--); // 延时,等待XT2起振 } while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振 BCSCTL2 =SELM1+SELS; // MCLK,SMCLK时钟为XT2 } //============================================================================== //========================延时约5ms============================================= void ms_delay(void) { unsigned int i=4000; while (i != 0) { i--; } } void main() { _EINT();//打开中断 init_uart0();//串口初始化 void InitSys();//系统初始化 int i; char Data[5]="atir"; for(i=0;i<5;i++) { TXBUF0=Data[i]; //向缓冲器送入待发送数据 while ((IFG1 & UTXIFG0) == 0); // 判断:发送是否完成 IFG1 &= ~(UTXIFG0); } ms_delay(); char Data1[17]="ATD10086;r"; for (i=0;i<11;i++) { TXBUF0=Data[i]; //向缓冲器送入待发送数据 while ((IFG1 & UTXIFG0) == 0); // 判断:发送是否完成 IFG1 &= ~(UTXIFG0); } ms_delay();//等待60秒 while(1); } 这程序已经写的很清楚了,各路高手看看有没什么问题?没问题的话我再去检查硬件的问题 |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
386 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1670 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1123 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1005 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1229 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12018 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:08 , Processed in 0.768608 second(s), Total 71, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号