回复帖子:(lgz)你好,你是用的你们自己写的程序吗,可以...

用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
验证码 点击获取验证码
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
  

主题最新回顾(发布时间:2016-5-10 16:27:00)
--  作者:客人(101.246.*.*)
--  
哦。谢谢,我也发现了。因为这块程序不是我写的所以以为是用外面的那个gpio_value进行设置的,没发现错误。刚才粘帖完看了一下才发现是这有问题。

主题最新回顾(发布时间:2016-5-10 15:19:00)
--  作者:lgz
--  
你好,在你的gpio_init()函数里面调用了GPIO_OutEnable函数,
rc = GPIO_OutEnable(gpio_fd,0x40003CF);

0x40003CF出错了,最后一位F跟串口复用的GPIO(2,3)冲突了,为什么不直接使用之前设置过的gpio_value呢
[此贴子已经被作者于2016-5-10 15:19:06编辑过]

主题最新回顾(发布时间:2016-5-10 15:10:00)
--  作者:客人(101.246.*.*)
--  
找到了原因,但是不知道怎么解决。原因是GPIO口的初始化操作,不知道怎么影响到了串口,
int gpio_value;

gpio_value = GPIO9+GPIO16+GPIO17+GPIO18+GPIO19+GPIO20+GPIO21+GPIO22+GPIO23+GPIO15;
GPIO_fd = gpio_init();
GPIO_OutEnable(GPIO_fd,gpio_value);
这部分是主程序中的,以下是苦中对应的函数
int gpio_init()
{
int gpio_fd,rc;
unsigned int dwPinState;

gpio_fd=open("/dev/em335x_gpio",O_RDWR);
printf("open file = %d\n",gpio_fd);

rc = GPIO_OutEnable(gpio_fd,0x40003CF);
if(rc<0)
{
printf("open gpio failed %d\n",rc);
//return rc;
}
else;

dwPinState = 0xffffffff;
rc = GPIO_PinState(gpio_fd,&dwPinState);
if(rc<0)
{
printf("GPIO_PinState::failed %d\n",rc);
//return rc;
}
printf("PinState = 0xx\n",dwPinState);
sleep(1);

return gpio_fd;
}

int GPIO_OutEnable(int fd,unsigned int dwEnBits)
{
int rc;
struct double_pars dpars;

dpars.par1 = EM335X_GPIO_OUTPUT_ENABLE;
dpars.par2 = dwEnBits;

rc = write(fd,&dpars,sizeof(struct double_pars));

return rc;
}

请问有什么问题吗?

主题最新回顾(发布时间:2016-5-10 14:43:00)
--  作者:客人(101.246.*.*)
--  
确实是我程序的问题,但是我用另一个测试程序的话这个串口就正常。用我原来出现的问题的程序把串口初始化部分进行修改也不好使,我在程序里使用了六个串口,1路CAN,SPI,网络口,开了七个线程,消息队列,信号量,究竟是什么会影响到ttyS5啊?

主题最新回顾(发布时间:2016-5-10 13:28:00)
--  作者:lgz
--  
你好,应该是你程序的问题,我们的程序重复运行也不会出现你那样的情况,可以好好看看一下程序代码,主要参考Serial.cpp中的OpenPort函数和set_port函数,可能是你在程序里面设置串口参数时出错了

主题最新回顾(发布时间:2016-5-10 13:19:00)
--  作者:客人(101.246.*.*)
--  
用了你们的程序发现如果是重新上电的话就好用,但是如果运行了我的程序后再运行你们的程序就又那样了。我的程序有什么问题?你们这个ttyS5到底有什么问题,为什么这样。

主题最新回顾(发布时间:2016-5-10 12:28:00)
--  作者:lgz
--  
你好,你是用的你们自己写的程序吗,可以试一下我们光盘里面的串口程序

主题最新回顾(发布时间:2016-5-10 11:53:00)
--  作者:客人(101.246.*.*)
--  
有的,另一块也是这样,在你们公司的底板上测试的。

主题最新回顾(发布时间:2016-5-10 10:27:00)
--  作者:lgz
--  
你好,你还有其他的核心板吗?方便的话换一张核心板再测试一下悬空状态的电平,我测了一下输出低电平是0V的,用的光盘中的例程,ttyS5,波特率9600、115200都没问题

主题最新回顾(发布时间:2016-5-10 8:10:00)
--  作者:SHENYANG(101.246.*.*)
--  
回复:今天一早来公司就按你说的方式测了一下,把核心板插在你们公司的底板上,运行程序,用示波器看ttyS5引脚,对应的是GPIO2和GPIO3,能够看到发送波形,但是波形的低电平在1.6-1.8之间,高电平是3.3V,你们公司提供的底板上ttyS5并没有接485,是悬空的状态。