,51单片机电子钟原理图一个疑问跪求解答

跪求解答!!!基于arm7的UART通信乱码问题 - ARM技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
跪求解答!!!基于arm7的UART通信乱码问题
16:56:43  
跪求高手解答!!!
为什么输入8个字节时能正确通信,输入8个以上的字节会出现乱码?
程序如下:
/*******************************************************************************
*File: main.c
*功能:使用串口UART1接收上位机发送的数据,当接收到8个连续数据后,取反LED控制,并将
*& &&&数据原封不动地发送回上位机
*******************************************************************************/
#include &intrinsics.h&
#include &inc/config.h&
#include &iolpc2103.h&
#include &stdio.h&
/*定义串口模式设置数据结构*/
typedef&&struct UartMode
&&U8& && && && && && &&&//字长度,5/6/7/8
&&U8& && && && && && &&&//停止位,1/2
&&U8& && && && && && & //奇偶校验位,0为无校验,1为奇数校验,2为偶数校验
} UARTMODE;
U8 rcv_buf[8];& && && && && & //UART0数据接收缓冲区
U8 rcv_& && && && && && & //接收新数据标志
/*************************************************************************
*& && && && && & 函数名称:irq_handler
*************************************************************************/
#pragma vector=IRQV
__irq __arm void irq_handler (void)
void (*interrupt_function)();//定义一个指针变量,指针指向void ()(void)函数,获得中断服务函数的地址,赋值给一个函数指针,然后通过这个指针调用中断服务函数。
&&vector = VICVectA& &&&//获得中断向量
&&interrupt_function = (void(*)())
&&if(interrupt_function != NULL)
& & interrupt_function();&&//调用中断指向的函数
& & VICVectAddr = 0;& && &//清除在VIC中的中断
/*******************************************************************************
*名称: IRQ_UART1(void)
*功能: 串口UART0接收中断
*******************************************************************************/
void IRQ_UART1(void)
&&if((U1IIR&0x0f)==0x04)
& & rcv_new=1;& & //设置接收到新的数据标志
& & for(rece=0;rece&8;rece++)
& && &while(U1LSR&0x01==0);
& && &rcv_buf[rece]=U1RBR;&&//读取FIFO的数据,并清除中断标志
&&U1FCR=0x83;& && && && &//清零Rx FIFO
&&VICVectAddr=0x00;& && && &&&//中断处理结束
/*******************************************************************************
*名称: SendByte()
*功能: 向串口发送字节数据
*入口参数:data& && & 要发送的数据
*******************************************************************************/
void SendByte(U8 data)
&&while((U1LSR&0x20)==0);& && & //等待数据发送
/*******************************************************************************
*名称: ISendBuf()
*功能: 将缓冲区的数据发送回主机,并等待发送完毕
*******************************************************************************/
void ISendBuf(void)
&&for(send=0;send&8;send++)
& & SendByte(rcv_buf[send]);
&&while((U1LSR&0x20)==0);& && && && && &//等待数据发送
&&U1FCR=0x85;& && && && && && && && && &//清零Tx FIFO
/*******************************************************************************
*名称: UART0_Ini()
*功能: 初始化串口0. 设置其工作模式及波特率
*入口参数: baud& && &波特率
& && && &&&set& && & 模式设置 (UARTMODE数据结构)
*出口参数:返回值为1时表示初始化成功,为0表示参数出错
*******************************************************************************/
void UART1_Ini(U32 baud,UARTMODE set)
&&/*设置串口波特率*/
&&U1LCR=0x80;& && && && && && && && & //DLAB位置1
&&bak=(Fpclk&&4)/
&&U1DLM=bak&&8;
&&U1DLL=bak&0
&&/*设置串口模式*/
&&bak=set.datab-5;& && && && && && &&&//设置字长度
&&if(set.stopb==2) bak|=0x04;& && && & //判断是否为2位停止位
&&if(set.parity!=0)
& & set.parity=set.parity-1;
& & bak|=0x08;& &&&//使能奇偶校验
&&bak|=set.parity&&4;& && && && && &&&//设置奇偶校验
/*******************************************************************************
*名称: main()
*功能: 初始化串口,并等待接收到串口数据
*******************************************************************************/&&
int main(void)
& &UARTMODE&&uart1_
& &PINSEL0 = 0x;& & & && && && &// 设置P0.8与P0.9连接到UART0
& &PINSEL1 = 0x;& && && && && &&&//其他为GPIO口
& &IODIR=LED1CON;& && && && && && & //设置LED控制口为输出,其它I/O为输入
& &rcv_new=0;
& &uart1_set.datab=8;& && && && && &//8位数据位
& &uart1_set.stopb=2;& && && && && &//1位停止位
& &uart1_set.parity=0;& && && && &&&//无奇偶校验位
& &UART1_Ini(9600,uart1_set);& && & //初始化串口模式,波特率9600
& &U1FCR=0x81;& && && && && && && & //使能FIFO,并设置触发点为8字节
& &U1IER=0x01;& && && && && && && && & //允许RBR中断,即接收中断
& &/*设置中断允许*/
& &// Assign to IRQ
&&VICIntSelect_bit.UART1 = 0;& &//分配TIMER0为IRQ型
&&// Set interrupt slots
&&VICVectAddr1 = (unsigned int) IRQ_UART1;
&&//[4:0]请求的中断编号;[5]:使能该编号
&&VICVectCntl1_bit.NUMBER = VIC_UART1;&&//VIC_TIMER0的值为4
&&VICVectCntl1_bit.ENABLED = 1;
&&// Timer 0 interrupt enable
&&VICIntEnable_bit.UART1 = 1;
& &__enable_interrupt();
& &while(1)& && && && && && && && & //等待中断
& &&&if(1==rcv_new)
& && & ISendBuf();& && && && && && &&&//将接收到的数据发送回主机
& && & rcv_new=0;
& &&&}& &&&
23:29:47  
为什么输入8个字节时能正确通信,输入8个以上的字节会出现乱码?---------
---------------------------------
U8 rcv_buf[8];& && && && && & //UART0数据接收缓冲区
-------------
因为你的接收数据缓冲区只有8个字节 数据溢出了 可以设置大一些 比如rcv_buf[64]
09:28:06  
楼主,我建议你去看一下UART通信的一直协议知识
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司51单片机入门写程序有一个问题跪求解答_百度知道
51单片机入门写程序有一个问题跪求解答
51单片机入门写程序有一个问题跪求解答我现在设计红绿灯程序,要设计一个按键,按一下三灯全亮,在按一下继续执行原来的读秒。 比如现在倒计时从20开始,到了10的时候我按下键在松开,红绿灯三灯一直亮,我再按一下,继续从10开始倒计时。 我现在遇到的的问题...
我有更好的答案
先判断那个标记,表示那个功能键按下了,然后在倒计例程里,要减一之前你要设置一个为全局变量的标记
采纳率:72%
设定全局变量用来保留倒计时数据,返回时调用就好了!
有QQ吗,交流下具体
为您推荐:
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。查看: 2242|回复: 10
DZ x3.1 搜索出来的帖子,一打开浏览器就卡死了,跪求解答~
平常打开帖子都是正常的,就是图片多了的帖子有点慢。
但是只要是通过搜索出来的帖子,搜索结果列表没有啥问题,一打开浏览器就卡死了。
找了找原因,本来的帖子链接:例如:http://www.itaozhu.com/forum.php?mod=viewthread&tid=2234218 能正常打开。
通过搜索的帖子,链接地址后面多了 &highlight=%B0%AE%CC%D4%D6%E9 即http://www.itaozhu.com/forum.php?mod=viewthread&tid=2234218&highlight=%B0%AE%CC%D4%D6%E9 打开浏览器就卡死了
有没有高手能帮忙看看是怎么回事啊!感激不尽!
网站是:www.itaozhu.com
换个电脑试试
换个电脑试试
已经换过电脑,换过浏览器了,没有用。
已经换过电脑,换过浏览器了,没有用。
网站比较慢 用默认模板试试哦
网站比较慢 用默认模板试试哦
也不是模板的问题,试了下 就是链接地址后面的那段 &highlight=%B0%AE%CC%D4%D6%E9 在作怪,链接里面有这个的,直接复制到浏览器也一样卡死
也不是模板的问题,试了下 就是链接地址后面的那段 &highlight=%B0%AE%CC%D4%D6%E9 在作怪,链接里面有这 ...
高亮标签 某些浏览器会卡死很久哦
高亮标签 某些浏览器会卡死很久哦
要怎么把它去掉?
自己顶一下,跪求高手!
不顶不行啊
有没有官方高手啊?
Powered byprotues仿真的单片机复位键怎么不起作用,跪求解答 - proteus论坛|仿真论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
protues仿真的单片机复位键怎么不起作用,跪求解答
13:29:13  
protues仿真的单片机复位键怎么不起作用,按一下就是LCD短暂的刷新一下,是硬件原因还是程序问题,跪求大神帮忙,感激涕淋呢
本帖子中包含更多资源
才可以下载或查看,没有帐号?
13:57:52  
复位有按键复位和上电复位,你的复位时间有多少?
我用的是按键复位,但是按下复位键只是LCD1602闪那么一下,但是数字还在,复位时间是在程序中规定的吗,程序中好像没有写
20:30:15  
这个是好使的,你下载去看看吧。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
21:21:32  
一般复位操作至少两个机器周期
问题已经解决,谢谢帮助。
22:38:46  
一般复位操作至少两个机器周期
11:50:52  
你这仿真版块的问题我都替你回答了,我的那个电子纸你何时动手?
哦!下礼拜,随时都可以的。你都这么帮我。我能不帮你吗!
17:49:53  
共同进步!
助理工程师
17:48:29  
问题已经解决,谢谢帮助。
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司虎年我的30出现一个新的问题,跪求高手解答。。。。。。。。。。。。。。
本回答由提问者推荐
var sogou_ad_id=731547;
var sogou_ad_height=160;
var sogou_ad_width=690;}

我要回帖

更多关于 单片机电子钟程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信