51单片机与plc的区别跪求解答,要求4是什么意思?不明白

已解决问题
跪求解答房屋漏水怎么补救?有什么要注意的?
提问时间: 20:53:54
跪求解答房屋漏水怎么补救?有什么要注意的?
浏览次数:2955
房屋楼面漏水是一个非常严重的问题,如果没有得到及时地解决,很容易给整个房屋带来麻烦。楼面漏水怎么做防水呢?有需要的话可以一起来了解下!&1.在农村房顶大多数都是采用的预制板,通常出现漏水部位的是板与板之间的接洽处,所以在农村平房屋顶漏水既简便又省钱的修理办法就是在房顶铺一层沥青把开缝处粘住,但此方法防水效果不持久;较为持久方法则是在房顶左一层防水层或是涂上乳胶。
答案创立者
以企业身份回答&
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题跪求解答!!!基于arm7的UART通信乱码问题 - ARM技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
跪求解答!!!基于arm7的UART通信乱码问题
<div class=""
跪求高手解答!!!
为什么输入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;
& &&&}& &&&
16:56:43  
该类别下有 16 个回答。
该类别下有 16 个回答。
该类别下有 13 个回答。
该类别下有 9 个回答。
该类别下有 8 个回答。
该类别下有 7 个回答。
该类别下有 7 个回答。
该类别下有 7 个回答。
该类别下有 6 个回答。
该类别下有 6 个回答。
该类别下有 6 个回答。
该类别下有 6 个回答。
该类别下有 6 个回答。
该类别下有 6 个回答。
该类别下有 5 个回答。
该类别下有 5 个回答。
该类别下有 5 个回答。
该类别下有 5 个回答。
该类别下有 5 个回答。
该类别下有 5 个回答。
为什么输入8个字节时能正确通信,输入8个以上的字节会出现乱码?---------
---------------------------------
U8 rcv_buf[8];& && && && && & //UART0数据接收缓冲区
-------------
因为你的接收数据缓冲区只有8个字节 数据溢出了 可以设置大一些 比如rcv_buf[64]
楼主,我建议你去看一下UART通信的一直协议知识
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司查看: 1441|回复: 9
ov7670遇到的一些问题,跪求解答
主题帖子精华
新手上路, 积分 32, 距离下一级还需 18 积分
在线时间0 小时
关于带FIFO的ov7670,问几个弱智的问题。(输出格式为RGB565,240*320像素)
1.HERF是行输出信号,一般是不是不需要用到,不需要接线?(看了很多例子上的HERF引脚并未引出,而我买的却引出了);
2.我没有TFT,所以想用电脑显示。看见很多例子都是从FIFO读取一个数据后,立刻给传给TFT显示。所以我想每读取一个数据,直接将数据打印到串口,用printf()函数是否可以,输出格式用%d还是%x?
3.另一个想法是用DMA传送数据,如果我将数据存在color变量里,内存地址是不是&color?内存和外设的数据单元大小是不是半字(DMA_PeripheralDateSize_HalfWord)?
4.如果将摄像头的盖子盖上,然后摄像,得到的数据是不是应该是0?我打印一帧的图像数据,发现不是,所以我觉得我得到的数据时错误的;(我是用杜邦线连的,并且分别捆绑了、、、);
5.我选择输出的数据格式是RGB565,求指导如何在电脑上显示为图片。我想用matlab对数据进行处理,然后显示图片,但是程序不会写(转换关系没弄懂),求好心人指导。
跪求大神指导,已经纠结很多天了。
附上取数据并且串口发送的程序:
[C] 纯文本查看 复制代码#define READ_FIFO_PIXEL(RGB565)
do{RGB565=0; FIFO_RCLK_L();RGB565 = (GPIOB-&IDR) & 0xff00;FIFO_RCLK_H();FIFO_RCLK_L();RGB565 |= (GPIOB-&IDR &&8) & 0x00FIFO_RCLK_H();}while(0)
//表示没看懂为什么要do ,while(0)
void Get_imag_and_discor(void)
printf(\"开始啦\r\n\");
for(i = 0; i & 240; i++)
for(j = 0; j & 320; j++)
READ_FIFO_PIXEL(Camera_Data);
//从FIFO读出一个rgb565像素到Camera_Data变量
printf(\"%d\r\n\" ,Camera_Data);
//串口打印
//LCD_WR_Data(Camera_Data);
printf(\"结束啦\r\n\");
1,带FIFO的HREF是可以不用的,你的引出了,可能设计者有其它考虑。
2,可以,但是不能用printf,printf发送过去,是ASCII格式,你怎么显示?除非你电脑再转换成16进制,然后再显示,另外你还得有上位机软件。
3,color是u16,不可能用dma存放在color里面,因为只有一个元素,你这样直接死机。要用数组,比如color[320*240],但是这样,你单片机内存2又不够。
4,不一定是0,可能是0附近的值,接近黑色的,都是可以接受的值。
5,你 ...
主题帖子精华
金钱131725
在线时间1213 小时
1,带FIFO的HREF是可以不用的,你的引出了,可能设计者有其它考虑。
2,可以,但是不能用printf,printf发送过去,是ASCII格式,你怎么显示?除非你电脑再转换成16进制,然后再显示,另外你还得有上位机软件。
3,color是u16,不可能用dma存放在color里面,因为只有一个元素,你这样直接死机。要用数组,比如color[320*240],但是这样,你单片机内存2又不够。
4,不一定是0,可能是0附近的值,接近黑色的,都是可以接受的值。
5,你在电脑上写软件,将RGB565显示为图片,具体上位机我也不太懂,你慢慢学习上位机编程吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
主题帖子精华
新手上路, 积分 32, 距离下一级还需 18 积分
在线时间0 小时
求支持,求帮助。。
主题帖子精华
新手上路, 积分 32, 距离下一级还需 18 积分
在线时间0 小时
回复【3楼】正点原子:
---------------------------------
谢谢原子哥。我已经得到图像了,printf()用%d的格式打印,然后串口发到在电脑上,用matlab根据相应的转换关系,的到RGB888的数据,然后显示出来了(操作稍麻烦)。不过不是很清晰,估计是焦距的关系,(也有可能是数据转换导致精度损失。。)还在调焦距中。。。
主题帖子精华
新手上路, 积分 32, 距离下一级还需 18 积分
在线时间0 小时
ead62ce5fcf010d.jpg (0 Bytes, 下载次数: 0)
22:54 上传
这是我刚刚得到的图片。。
主题帖子精华
新手上路, 积分 32, 距离下一级还需 18 积分
在线时间0 小时
ee31ffc007c8_450.jpg (0 Bytes, 下载次数: 0)
22:54 上传
清晰一点的。。
主题帖子精华
金钱131725
在线时间1213 小时
回复【6楼】风过暖城:
---------------------------------
这效果不错了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
主题帖子精华
新手上路, 积分 37, 距离下一级还需 13 积分
在线时间0 小时
楼主,求指教啊,我最近也在做这个,上位机是怎么写的呢?
主题帖子精华
初级会员, 积分 78, 距离下一级还需 122 积分
在线时间2 小时
楼主具体怎么做,我现在也在做这个上位机显示问题,求楼主教
主题帖子精华
新手上路, 积分 32, 距离下一级还需 18 积分
在线时间0 小时
好久没看过论坛了,我的比较渣,不算上位机,就是打印一帧的图像数据,然后用matlab显示
必看:"原子哥”力荐 /1
千讲STM32视频,文档覆盖STM32F1~STM32H7,数百个原创实例,让你一次嗨个够!
Powered by麻烦各位大佬&跪求解答,小土豆什么意思?
18-07-26 &朴犁
“小土豆”餐饮有限公司已发展到享有130余家连锁店、5个地区分公司.“小土豆”吸引住了所有顾客,经常出现了这样一句口头禅:“爱吃吃过于,沈阳小土豆。.
尼加拉瓜兔子
小土豆婴儿产品著名品牌跪求51单片机(c语言)高手解答,图中main函数最后一句的while(1)作何解释啊??理解不过来 - 爱问网
>>跪求51单片机(c语言)高手解答,图中main函数最后一句的while(1)作何解释啊??理解不过来
本页链接:
网友们正在为您出谋划策,请耐心等待!
最新解决问题列表
猜你感兴趣
Copyright &#169;
.&#160;&#160;蜀ICP备号&#160;&#160;&#160;}

我要回帖

更多关于 单片机编程入门 的文章

更多推荐

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

点击添加站长微信