OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8202|回复: 16

USART3,串口摄像头

[复制链接]

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
发表于 2013-1-12 21:51:37 | 显示全部楼层 |阅读模式
一个串口摄像头连接到PB10和PB11,串口摄像头 发送指令(十六进制)56 00 26 00 返回指令76 00 26 00
其他的和原子串口实验一样,只是在usart里加入了usart3的代码,现在问题:
我发送了指令 56 00 26 00但是返回不了 76 00 26 00 调试中usart3->DR  根本没数据
我的发送指令代码:
 void uart3_sendbuf(u8 const *buf, u32 n)
{
int i;
printf("USART3_RX_STA=%x\n",USART3_RX_STA);USART3_RX_STA一直是0
//    if(USART3_RX_STA&0x80)
//      {
    for (i = 0; i < n; i++)  
     { 
      
  USART3->DR = buf;    这句应该没问题啊
  while ((USART3->SR & 0x40) == 0); /* 等待数据发送完毕*/
USART3->SR 出现的是c0(16进制)

//   printf("buf=%02x\n",buf);
//       printf("\n\n"); delay_ms(100);
//       printf("USART3->DR=%x\n",USART3->DR);
//       delay_ms(100);
//      }
//      USART3_RX_STA=0;
      }
}
还有程序是不是不能发送十六进制的指令 ?


单独用串口3和用串口助手调试摄像头都是没问题的,原子大哥 帮忙看看啊   快一星期了 脑子糊涂了



ALIENTEK MINISTM32 串口摄像头实验.rar

663.39 KB, 下载次数: 1121

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-1-13 00:25:12 | 显示全部楼层
//u8 reset_cmd[] = { 56,00,26,00};
你这样写,不是16进制.
要写成://u8 reset_cmd[] = {0X56,0X00,0X26,0X00};
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
 楼主| 发表于 2013-1-13 09:50:39 | 显示全部楼层
回复【2楼】正点原子:
//u8 reset_cmd[] = { 56,00,26,00}; 你这样写,不是16进制. 要写成://u8 reset_cmd[] = {0X56,0X00,0X26,0X00};
---------------------------------
没啊  reset_cmd[] 我引用的是photo.c里的,那里就是u8 reset_cmd[] = {0X56,0X00,0X26,0X00};
仿真的时候显示的也是 {0X56,0X00,0X26,0X00};这个应该没问题,问题应该出在photo.c里的哪个usart3_sentbuf(const *buf,u32 n)这里,这个是发送指令到usart3的USART3->DR,但是怎么调试都不对.
麻烦原子大哥看看我的工程文件,估计工程可能有点问题 我没找到,叩首拜谢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-1-13 11:17:20 | 显示全部楼层
这个,你的STM32波特率是76923,你的摄像头波特率是76800吧?
不知道是不是这个波特率不匹配造成的?
你测试下把STM32的串口3接到电脑串口,看看数据能否正常收发。


我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
 楼主| 发表于 2013-1-13 19:04:27 | 显示全部楼层
1,摄像头特率是38400 ,

2, 我用串口助手试了,usart3 init(72,76800),串口助手是 38400,可以正常返回数据,同时仿真的时候就是这样了,仿真的和真实的有点区别,
   但是 我还是没找到具体的原因啊 ?




回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-1-13 19:10:35 | 显示全部楼层
差这么一点点应该无关系了。
你用电脑模拟摄像头,应该是可以正常使用的吧?
比如开发板发送:0X56 0X00 0X26 0X00
电脑应该接受到这些数据,然后电脑再发送:0X76 0X00 0X26 0X00
开发板也应该收到。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
 楼主| 发表于 2013-1-13 19:46:07 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
现在正常了   不过有出现了其他的问题了
在仿真状态中:
比如:发送指令 0x56    USART3->DR=0
                     0x00    USART3->DR=0
                     0x26    USART3->DR=0
                     0x00    USART3->DR=0
如果  我把usart3的 rx和tx 短接  
发送指令          0x56    USART3->DR=56
                     0x00    USART3->DR=0
                     0x26    USART3->DR=26
                     0x00    USART3->DR=0
又完全正常   而且摄像头完全正常的   接上摄像头有不正常了  

真恼人啊 
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-1-13 20:39:37 | 显示全部楼层
哦哦。
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
 楼主| 发表于 2013-1-13 21:08:59 | 显示全部楼层
回复【8楼】正点原子:
-----------------------
原子大哥   以你经验看  是哪个地方的原因?

波特率?

还是。。。。。。。未知原因

DR寄存器?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-1-14 01:09:18 | 显示全部楼层
应该不是波特率原因了
看看是不是电平匹配问题了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
 楼主| 发表于 2013-1-14 16:42:37 | 显示全部楼层
不是很明白啊    摄像头是TTL电平输入输出的
stm32 的USART3 PB10 PB11  是可以承受5V的电平输入输出的
原因的 找不到  什么问题啊 ?


回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-1-14 17:13:28 | 显示全部楼层
回复【11楼】a2696026:
---------------------------------
但是STM32的输出只有3.3V啊
你的摄像头输入得多高才算是高?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
 楼主| 发表于 2013-1-14 17:25:49 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
感觉USART3->DR  这个只能接收的时候能用  发送数据的时候就不能了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-1-14 21:33:58 | 显示全部楼层
这个你不是检查过了么?
直接将STM32的USART3 的TXD接PL2303的RXD,在电脑上你能收到数据,说明正常啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
 楼主| 发表于 2013-1-14 21:52:18 | 显示全部楼层
是啊检查过了 刚才 我用软件仿真  在usart3的窗口上看到数据了
是不是 可以说 我已经给摄像头发过去指令了?(不在家没办法验证)


回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-1-14 23:12:57 | 显示全部楼层
是的
回复 支持 反对

使用道具 举报

6

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-11-16
在线时间
11 小时
发表于 2016-5-21 00:07:22 | 显示全部楼层
LZ能不能把图像串口回传的代码贴出来啊,教程里没给自己写又是各种出错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 16:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表