完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
源程序:
/******************************************************************************* 1.分项目:串口测试 2.功能:串口测试 3.设计:robin_chen559 4.日期:20130906 5.备注: 5.1系统时钟11.0592MHz *******************************************************************************/ #include #include #define uchar unsigned char #define uint unsigned int //子程序声明 void Delay_MS(uint MS); //MS延迟程序 void Init_Uart(void); //串口初始化程序 void Sent_Uart(void); //串口发送数据 //子程序 //MS延迟程序 void Delay_MS(uint MS) { uint x,y; for(x=MS;x>0;x--) { for(y=876;y>0;y--); } } //定义字符变量 uchar code ADC_RES[9] = { 0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90 }; // 串口初始化 void Init_Uart() { TMOD = 0x20; //定时器1工作方式2 PCON = 0x00; //波特率正常,不加倍 SCON = 0x50; //0101 0000,工作方式1,允许串口接收 TL1 = 0xfd; TH1 = 0xfd; //波特率 9600 TR1 = 1; } //串口数据传送 void Sent_Uart(void ) { uchar i ; for(i=9;i>0;i--) { SBUF = ADC_RES[i]; while (!ti); TI=0; Delay_MS(1000); } } //主程序 void main(void) { Init_Uart() ; //串口初始化 while(1) //无限循环检测 { Sent_Uart(); //发动串口数据 } } /**************************************************************************/
|
|
相关推荐
10个回答
|
|
最后一个数0x10不显示,什么改都是0x12,看着真是让人郁闷呀~~~
|
|
|
|
仔细看看程序,最后的IO口状态会被发送出去,就是0X12
|
|
|
|
//请用实际行动支持宏晶STC大陆本土MCU统一全球市场
void UartInit(void) //9600bps@11.0592MHz { PCON &= 0x7f; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 AUXR |= 0x40; //定时器1时钟为Fosc,即1T AUXR &= 0xfe; //串口1选择定时器1为波特率发生器 TMOD &= 0x0f; //清除定时器1模式位 TMOD |= 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xDC; //设定定时初值 TH1 = 0xDC; //设定定时器重装值 ET1 = 0; //禁止定时器1中断 TR1 = 1; //启动定时器1 } 很明显你的配置错了,上面是STC官方软件生成的代码 |
|
|
|
void UartInit(void) //9600bps@11.0592MHz
{ PCON &= 0x7f; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 AUXR |= 0x40; //定时器1时钟为Fosc,即1T AUXR &= 0xfe; //串口1选择定时器1为波特率发生器 TMOD &= 0x0f; //清除定时器1模式位 TMOD |= 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xDC; //设定定时初值 TH1 = 0xDC; //设定定时器重装值 ET1 = 0; //禁止定时器1中断 TR1 = 1; //启动定时器1 } |
|
|
|
for(i=9;i>0;i--)
{ SBUF = ADC_RES[i]; i的值为9~1循环。ADC_RES[0]不被发送。和ADC_RES[9]没定义,所以是ADC_RES地址偏移9个字节的内存单位,未被初始化,应该这个0x12就是它存的值了。 |
|
|
|
恩,分析得很有条理,程序改改看~~~~ |
|
|
|
|
|
|
|
初始化再好好看看~~~ |
|
|
|
对的,数组从0开始,按这个思路去改可以了,谢谢。
|
|
|
|
/******************************************************************************* 1.分项目:串口测试 2.功能:串口测试 3.设计:robin_chen559 4.日期:20130906 5.备注: 5.1系统时钟11.0592MHz *******************************************************************************/ #include #include #define uchar unsigned char #define uint unsigned int //子程序声明 void Delay_MS(uint MS); //MS延迟程序 void Init_Uart(void); //串口初始化程序 void Sent_Uart(void); //串口发送数据 //子程序 //MS延迟程序 void Delay_MS(uint MS) { uint x,y; for(x=MS;x>0;x--) { for(y=876;y>0;y--); } } //定义字符变量 uchar code ADC_RES[] = { 0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90 }; // 串口初始化 void Init_Uart() { TMOD = 0x20; //定时器1工作方式2 PCON = 0x00; //波特率正常,不加倍 SCON = 0x50; //0101 0000,工作方式1,允许串口接收 TL1 = 0xfd; TH1 = 0xfd; //波特率 9600 TR1 = 1; } //串口数据传送 void Sent_Uart(void ) { uchar i ; for(i=0;i<9;i++) { SBUF = ADC_RES; while (!TI); TI=0; Delay_MS(250); } } //主程序 void main(void) { Init_Uart() ; //串口初始化 while(1) //无限循环检测 { Sent_Uart(); //发动串口数据 } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
203 浏览 0 评论
761 浏览 0 评论
806 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
743 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1195 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11811 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 06:18 , Processed in 0.723475 second(s), Total 87, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号