使用stm32radio-examples中的例子,网络ping不通问题请教
我使用armfly的STM32板子,学习STM32 Radio中的例子,网络部分ping不通,armfly的STM32板子和本站的STM32 Radio在网络部分硬件上有些差别,中断引脚不一样,总线地址不一样,两个部分都按实际情况修改了,但ping不通,截图见图片:
http://cache.amobbs.com/bbs_upload782111/files_32/ourdev_573488.jpg
现象截图 (原文件名:20100807135502453.jpg)
请明白的指导指导,谢谢! 请自行修改驱动,不同的板子驱动当然也不相同。 发现了一些问题,STM32 Radio中总线好像是用八位,armfly的是16位,继续改 回复【2楼】lixuyongzd
发现了一些问题,stm32 radio中总线好像是用八位,armfly的是16位,继续改
-----------------------------------------------------------------------
RADIO中也是16位,如果使用8位,会影响高8位数据. 回复【3楼】aozima
-----------------------------------------------------------------------
看原理图DM9000A的21脚是高电平,芯片手册上说高电平时是8位,难道还有其他设置? 回复【4楼】lixuyongzd
回复【3楼】aozima
-----------------------------------------------------------------------
看原理图dm9000a的21脚是高电平,芯片手册上说高电平时是8位,难道还有其他设置?
-----------------------------------------------------------------------
那个电阻实际安装时并不贴. 只是留着备用的. 这个就搞不明白了,stm32 radio和armfly的区别就只有地址(armfly的是0x6C100000、0x6C100008)、中断引脚(armfly的是PA1)和中断方式的区别(armfly上DM9000A的20脚上拉,中断是低有效)的区别,仿真是开始进中断,后来不进中断了, 硬件不一样,自然区别也比较大的。对于不是STM32 Radio硬件的,建议使用原来的STM3210分支进行调试,毕竟要简单些。 这个我是用STM3210分支的,结果是一样的,rtt finsh显示TCP/IP初始化,但是ping不通,另外一个网友用的是STM32 Radio分支,现象一样,自己电脑的网卡出问题了,公司又不敢明目张胆的弄私人东西 如果不同,怎么获取IP地址呀,我看你那上面已经获取到IP了 我也纳闷呀,能自动获得IP 接收成功,发送不成功?不过感觉很奇怪,发送应该也能够成功才对,否则DHCP server不会接收到分配请求。
建议仔细看看FSMC部分,好像armfly的FSMC外设比较麻烦。 恩,好,谢谢指导 好像他的外设增加了地址扩展,看下相应的pin有没有设置好 找了块armfly的板子,确实有楼主说的问题,能够获取ip,但是ping不通,但是用他自带的例程可以,不知道问题在哪 PA1中断引脚在开始分配IP时有下降沿,可以进入中断,后来就一直为低电平,进不了中断了 搜一下,看看是不是在别的地方使用到PA1了,并且修改了PA1的状态。我也觉得很奇怪,用armfly的也可以更新电台列表,就是ping不同 static void GPIO_Configuration()
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
/* configure PE5 as eth RST */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE,&GPIO_InitStructure);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
//RST_1();
/* configure PE4 as external interrupt */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOE, &GPIO_InitStructure);
不知道这个地方你是不是只把PE4改成了PA1, 估计因为GPIO_Mode 为下拉输入的原因,所以一直为低电平
/* Connect DM9000 EXTI Line to GPIOE Pin 4 */
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource4);
/* Configure DM9000 EXTI Line to generate an interrupt on falling edge */
EXTI_InitStructure.EXTI_Line = EXTI_Line4;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure); 我现在的比较简单,用STM3210分支,其他地方都没有用到PA1,工程见附件,串口波特率是19200,目前SD和LED管用
工程ourdev_574089.rar(文件大小:25.83M) (原文件名:rt-thread_20100807.rar) 修改成了上拉也不行 我想应该是DM9000A配置问题,armfly上DM9000A的20脚上拉,中断是低有效;STM32 Radio上DM9000A的20脚悬空,中断是高有效,可能DM9000A初始化也要改改 好了,
/* configure PA1 as external interrupt */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Connect DM9000 EXTI Line to GPIOE Pin 1 */
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1);
/* Configure DM9000 EXTI Line to generate an interrupt on falling edge */
EXTI_InitStructure.EXTI_Line = EXTI_Line1;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
中断方式改为下降沿就好了 谢谢各位的关注,特别感谢cat_li大哥的指导,仔细看了引脚配置,发现虽然 写着/* Configure DM9000 EXTI Line to generate an interrupt on falling edge */ ,实际却是 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;上升沿中断 回复【22楼】lixuyongzd
谢谢各位的关注,特别感谢cat_li大哥的指导,仔细看了引脚配置,发现虽然 写着/* configure dm9000 exti line to generate an interrupt on falling edge */ ,实际却是 exti_initstructure.exti_trigger = exti_trigger_rising;上升沿中断
-----------------------------------------------------------------------
呵呵,昨天用朋友的板子也碰到这个问题了,早上来找了一下,但是没有硬件验证, 我是菜鸟,指导不敢当 上传ping通的工程,加入了外部ram
pingourdev_574103.rar(文件大小:25.74M) (原文件名:rt-thread_20100807.rar)
页:
[1]