STM32F207不支持作为TFTP剑灵客户端不支持修复吗

21ic官方微信-->
后使用快捷导航没有帐号?
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
请完成以下验证码
查看: 1806|回复: 14
可不可以用串口给STM32F207下载程序
&&已结帖(20)
主题帖子积分
实习生, 积分 48, 距离下一级还需 2 积分
实习生, 积分 48, 距离下一级还需 2 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
实习生, 积分 48, 距离下一级还需 2 积分
实习生, 积分 48, 距离下一级还需 2 积分
一直不明白为什么STM32f207的JTAG下载口要使用20个口,很多接口都连接到地。感觉这样太占板子的面积了,想知道可不可以用串口给STM32F207下载程序?
满意回复+2
可以使用 USART, CAN, USB 等接口 ISP, 不过本人推荐使用 SWD 方式,其实这些都是两信号线+一地线的方式。
stm32可以选择swd模式下载程序,或者串口,这两种方式都需要2根线
遵循这个标准的所有工具所有目标板都可以互连
那是因为ARM曾经给出过这么一个JTAG口标准。。。。。。。
开发板的JTAG口也不是20个脚都接到MCU的,就算用JTAG模式也只有TMS TCK TDI TDO是必须接的
在调试时,可以使用SWD下载程序并调试,在生产线,使用的方法就很多了。其它未连接的JTAG端口可以不考虑它。
可以,不过你用bootloader实现IAP功能。
串口,或者JTAG/SWD接口。
也可以IAP,主机弄bootloader,任意一种通信方式都可以。。。。
官方给出了 bootload 的 CAN 协议,但好象没有给出支持 ISP,你得找一下,当然你还得一个连接 PC 的 CAN 适配器
你好,请问用CAN进行更新程序,我需要什么设备使电脑和板子芯片连接?
主题帖子积分
中级技术员, 积分 186, 距离下一级还需 114 积分
中级技术员, 积分 186, 距离下一级还需 114 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
中级技术员, 积分 186, 距离下一级还需 114 积分
中级技术员, 积分 186, 距离下一级还需 114 积分
stm32可以选择swd模式下载程序,或者串口,这两种方式都需要2根线
主题帖子积分
---------------------
主题帖子积分
---------------------
专家等级:结帖率:97%打赏:0.00受赏:58.00
主题帖子积分
---------------------
可以使用 USART, CAN, USB 等接口 ISP, 不过本人推荐使用 SWD 方式,其实这些都是两信号线+一地线的方式。
欢迎进入 !
主题帖子积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
主题帖子积分
专家等级:结帖率:100%打赏:8.88受赏:31.98
主题帖子积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
开发板的JTAG口也不是20个脚都接到MCU的,就算用JTAG模式也只有TMS TCK TDI TDO是必须接的
主题帖子积分
实习生, 积分 48, 距离下一级还需 2 积分
实习生, 积分 48, 距离下一级还需 2 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
实习生, 积分 48, 距离下一级还需 2 积分
实习生, 积分 48, 距离下一级还需 2 积分
stm32可以选择swd模式下载程序,或者串口,这两种方式都需要2根线
谢谢你的回答,我还有两个问题
1,怎么实现SWD模式下载,有没有硬件电路参考下?
2,我现在是用JTAG下载的,如果用SWD模式下载需要重新买下载器吗?
主题帖子积分
实习生, 积分 48, 距离下一级还需 2 积分
实习生, 积分 48, 距离下一级还需 2 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
实习生, 积分 48, 距离下一级还需 2 积分
实习生, 积分 48, 距离下一级还需 2 积分
开发板的JTAG口也不是20个脚都接到MCU的,就算用JTAG模式也只有TMS TCK TDI TDO是必须接的 ...
其他的引脚不连接对程序下载有没有什么影响?为什么新买的开发板都使用20针引脚的JTAG?
主题帖子积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
主题帖子积分
专家等级:结帖率:100%打赏:8.88受赏:31.98
主题帖子积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
其他的引脚不连接对程序下载有没有什么影响?为什么新买的开发板都使用20针引脚的JTAG? ...
那是因为ARM曾经给出过这么一个JTAG口标准。。。。。。。
主题帖子积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
主题帖子积分
专家等级:结帖率:100%打赏:8.88受赏:31.98
主题帖子积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
技术总监, 积分 23784, 距离下一级还需 26216 积分
遵循这个标准的所有工具所有目标板都可以互连
主题帖子积分
中级工程师, 积分 4408, 距离下一级还需 592 积分
中级工程师, 积分 4408, 距离下一级还需 592 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级工程师, 积分 4408, 距离下一级还需 592 积分
中级工程师, 积分 4408, 距离下一级还需 592 积分
在调试时,可以使用SWD下载程序并调试,在生产线,使用的方法就很多了。其它未连接的JTAG端口可以不考虑它。
官向官来民向民,穷人向的是穷人
主题帖子积分
中级技术员, 积分 254, 距离下一级还需 46 积分
中级技术员, 积分 254, 距离下一级还需 46 积分
主题帖子积分
专家等级:结帖率:83%
主题帖子积分
中级技术员, 积分 254, 距离下一级还需 46 积分
中级技术员, 积分 254, 距离下一级还需 46 积分
可以使用 USART, CAN, USB 等接口 ISP, 不过本人推荐使用 SWD 方式,其实这些都是两信号线+一地线的方式。 ...
你好,请问用CAN进行更新程序,我需要什么设备使电脑和板子芯片连接?
主题帖子积分
主题帖子积分
专家等级:结帖率:84%打赏:0.00受赏:4.00
主题帖子积分
串口很方便,如果不要做调试的话。
& & 好久不嚼槟榔
主题帖子积分
主题帖子积分
专家等级:结帖率:62%
主题帖子积分
提示: 作者被禁止或删除 内容自动屏蔽
主题帖子积分
中级工程师, 积分 3358, 距离下一级还需 1642 积分
中级工程师, 积分 3358, 距离下一级还需 1642 积分
主题帖子积分
专家等级:结帖率:1%打赏:0.00受赏:1.10
主题帖子积分
中级工程师, 积分 3358, 距离下一级还需 1642 积分
中级工程师, 积分 3358, 距离下一级还需 1642 积分
串口,或者JTAG/SWD接口。
也可以IAP,主机弄bootloader,任意一种通信方式都可以。。。。
主题帖子积分
---------------------
主题帖子积分
---------------------
专家等级:结帖率:97%打赏:0.00受赏:58.00
主题帖子积分
---------------------
官方给出了 bootload 的 CAN 协议,但好象没有给出支持 ISP,你得找一下,当然你还得一个连接 PC 的 CAN 适配器
欢迎进入 !
主题帖子积分
中级技术员, 积分 186, 距离下一级还需 114 积分
中级技术员, 积分 186, 距离下一级还需 114 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
中级技术员, 积分 186, 距离下一级还需 114 积分
中级技术员, 积分 186, 距离下一级还需 114 积分
谢谢你的回答,我还有两个问题
1,怎么实现SWD模式下载,有没有硬件电路参考下?
2,我现在是用JTAG下载 ...
山寨的JLINK都可以
技术新星奖章
人才类勋章
技术高手奖章
人才类勋章
时间类勋章
荣誉元老奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术领袖奖章
人才类勋章
技术奇才奖章
人才类勋章
奔腾之江水
发帖类勋章
时间类勋章
精英会员奖章
等级类勋章
技术导师奖章
人才类勋章
突出贡献奖章
等级类勋章
湍急之河流
发帖类勋章
终身成就奖章
等级类勋章STM32F207 TCP协议 开发板作为客户端【tcp吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:407贴子:
STM32F207 TCP协议 开发板作为客户端收藏
function used to send data
tpcb: tcp control block
es: pointer on structure of type echoclient containing info on data
to be sent
*/static void tcp_echoclient_send(struct tcp_pcb *tpcb, struct echoclient * es)请问这个函数该如何使用???
山东瑞兴阻燃科技专业从事tcp系列阻燃剂,抗磨剂生产与销售的公司.tcp采购优选山东瑞兴阻燃科技,专业供应质量保障.
求解!!!
登录百度帐号推荐应用【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发 - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 14676|回复: 21
【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
STM32F207的HOST usb 非常有用,可以接U盘,也可以接USB接口的键盘。非常方便,但ST的U库V2.0,V2.1实际使用都有问题。
经过修改,现在可以很好第读写U盘和连接HID键盘。
程序代码的核心是V2.1的库。
通过U盘D读写,可以方便地进行IAP-BOOT操作。以及用户键盘操作!
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
RE:STM32F207的host USB的MSC和HID的合并开发
吃完饭来发电路和源程序。
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发
继续发图:
电路很简单,占用F207的HS-usb:
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
回复:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发
回复第 3 楼 于 10:51:07发表:
继续发图:
电路很简单,占用F207的HS-usb:
(33.22 KB, 下载次数: 116)
10:52 上传
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发
初始化端口程序:
void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev){
&&GPIO_InitTypeDef GPIO_InitS
&&RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB , ENABLE);
&&GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12&&|
& & GPIO_Pin_13 |
& && &GPIO_Pin_14 |
& && &&&GPIO_Pin_15;
&&GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
&&GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
&&GPIO_Init(GPIOB, &GPIO_InitStructure);&&
&&GPIO_PinAFConfig(GPIOB,GPIO_PinSource12, GPIO_AF_OTG2_FS) ;
&&GPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_OTG2_FS) ;
&&GPIO_PinAFConfig(GPIOB,GPIO_PinSource14,GPIO_AF_OTG2_FS) ;
&&GPIO_PinAFConfig(GPIOB,GPIO_PinSource15,GPIO_AF_OTG2_FS) ;
& & & & //---------------------------------------------------------------
&&RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_OTG_HS, ENABLE) ;
& & & & //-----------------------------------------------------------------
& & & & //Vbus_EN& &根据实际电路修改!
&&RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOE , ENABLE) ;&&
&&GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
& & & & GPIO_InitStructure.GPIO_Pin =&&GPIO_Pin_0;
&&GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
&&GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;&&
&&GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
&&GPIO_Init(GPIOE, &GPIO_InitStructure);
& & & & GPIO_ResetBits(GPIOE, GPIO_Pin_0);
& & & & //-------------------------------------------------------------------
&&USB_OTG_BSP_TimeInit();
& & & & USB_OTG_BSP_mDelay(500);& &//Delay is need for stabilising the Vbus Low
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发
采用内部的:USE_EMBEDDED_PHY&&,所以直接用IO连接U端口。
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发
以下是ST原来的库函数定义文件头:
#ifndef USE_USB_OTG_HS
#define USE_USB_OTG_HS
#endif /* USE_USB_OTG_HS */
#ifndef USE_ULPI_PHY
//#define USE_ULPI_PHY
#endif /* USE_ULPI_PHY */
#ifndef USE_EMBEDDED_PHY
#define USE_EMBEDDED_PHY
#endif /* USE_EMBEDDED_PHY */
#ifdef USE_USB_OTG_HS
#define USB_OTG_HS_CORE
/*******************************************************************************
*& && && && && && && &FIFO Size Configuration in Host mode
*&&(i) Receive data FIFO size = (Largest Packet Size / 4) + 1 or
*& && && && && && && && && &&&2x (Largest Packet Size / 4) + 1,&&If a
*& && && && && && && && && &&&high-bandwidth channel or multiple isochronous
*& && && && && && && && && &&&channels are enabled
*&&(ii) For the host nonperiodic Transmit FIFO is the largest maximum packet size
*& && &for all supported nonperiodic OUT channels. Typically, a space
*& && &corresponding to two Largest Packet Size is recommended.
*&&(iii) The minimum amount of RAM required for Host periodic Transmit FIFO is
*& && &&&the largest maximum packet size for all supported periodic OUT channels.
*& && &&&If there is at least one High Bandwidth Isochronous OUT endpoint,
*& && &&&then the space must be at least two times the maximum packet size for
*& && &&&that channel.
*******************************************************************************/
/****************** USB OTG HS CONFIGURATION **********************************/
#ifdef USB_OTG_HS_CORE
#define RX_FIFO_HS_SIZE& && && && && && && && &&&512
#define TXH_NP_HS_FIFOSIZ& && && && && && && && &256
#define TXH_P_HS_FIFOSIZ& && && && && && && && & 256
// #define USB_OTG_HS_LOW_PWR_MGMT_SUPPORT
// #define USB_OTG_HS_SOF_OUTPUT_ENABLED
#ifdef USE_ULPI_PHY
&&#define USB_OTG_ULPI_PHY_ENABLED
#ifdef USE_EMBEDDED_PHY
& &#define USB_OTG_EMBEDDED_PHY_ENABLED
#define USB_OTG_HS_INTERNAL_DMA_ENABLED
#define USB_OTG_EXTERNAL_VBUS_ENABLED
//#define USB_OTG_INTERNAL_VBUS_ENABLED
/****************** USB OTG FS CONFIGURATION **********************************/
#ifdef USB_OTG_FS_CORE
#define RX_FIFO_FS_SIZE& && && && && && && && &&&128
#define TXH_NP_FS_FIFOSIZ& && && && && && && && & 96
#define TXH_P_FS_FIFOSIZ& && && && && && && && &&&96
// #define USB_OTG_FS_LOW_PWR_MGMT_SUPPORT
// #define USB_OTG_FS_SOF_OUTPUT_ENABLED
/****************** USB OTG MODE CONFIGURATION ********************************/
#define USE_HOST_MODE
//#define USE_DEVICE_MODE
//#define USE_OTG_MODE
#ifndef USB_OTG_FS_CORE
#ifndef USB_OTG_HS_CORE
& & #error&&&USB_OTG_HS_CORE or USB_OTG_FS_CORE should be defined&
#ifndef USE_DEVICE_MODE
#ifndef USE_HOST_MODE
& & #error&&&USE_DEVICE_MODE or USE_HOST_MODE should be defined&
#ifndef USE_USB_OTG_HS
#ifndef USE_USB_OTG_FS
& & #error&&&USE_USB_OTG_HS or USE_USB_OTG_FS should be defined&
#else //USE_USB_OTG_HS
#ifndef USE_ULPI_PHY
&&#ifndef USE_EMBEDDED_PHY
& &&&#error&&&USE_ULPI_PHY or USE_EMBEDDED_PHY should be defined&
/****************** C Compilers dependant keywords ****************************/
/* In HS mode and when the DMA is used, all variables and data structures dealing
& &with the DMA during the transaction process should be 4-bytes aligned */& &
#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
&&#if defined& &(__GNUC__)& && &&&/* GNU Compiler */
& & #define __ALIGN_END& & __attribute__ ((aligned (4)))
& & #define __ALIGN_BEGIN& && && &
&&#else& && && && && && && && && &
& & #define __ALIGN_END
& & #if defined& &(__CC_ARM)& && &/* ARM Compiler */
& && &#define __ALIGN_BEGIN& & __align(4)&&
& & #elif defined (__ICCARM__)& & /* IAR Compiler */
& && &#define __ALIGN_BEGIN
& & #elif defined&&(__TASKING__)&&/* TASKING Compiler */
& && &#define __ALIGN_BEGIN& & __align(4)
& & #endif /* __CC_ARM */&&
&&#endif /* __GNUC__ */
&&#define __ALIGN_BEGIN
&&#define __ALIGN_END& &
#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */
/* __packed keyword used to decrease the data type alignment to 1-byte */
#if defined (__CC_ARM)& && && &/* ARM Compiler */
&&#define __packed& & __packed
#elif defined (__ICCARM__)& &&&/* IAR Compiler */
&&#define __packed& & __packed
#elif defined& &( __GNUC__ )& &/* GNU Compiler */& && && && && && && && &
&&#define __packed& & __attribute__ ((__packed__))
#elif defined& &(__TASKING__)&&/* TASKING Compiler */
&&#define __packed& & __unaligned
#endif /* __CC_ARM */
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发
主程序非常简单:(这里是用U盘iap—BOOT为例):
int main(void){
&&/*!& At this stage the microcontroller clock setting is already configured,
&&this is done through SystemInit() function which is called from startup
&&file (startup_stm32fxxx_xx.s) before to branch to application main.
&&To reconfigure the default setting of SystemInit() function, refer to
&&system_stm32fxxx.c file
&&/* Init Host Library */
&&USBH_Init(&USB_OTG_Core,
& && && && &USB_OTG_HS_CORE_ID,
& && && && &&USB_Host,
& && && && &&USBH_MSC_cb,
& && && && &&USR_cb);
&&while (1){
& & /* Host Task handler */
& & USBH_Process(&USB_OTG_Core, &USB_Host);
& & & & & & & & if(iapRun==0){
& & & & & & & & & & & & IAP_URN_UserProgrammer();
& & & & & & & & }
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发
由于HOST-MSC和HID的初始化全部相同,这里先不介绍,不同点是从枚举后分析数据协议开始,所以我们在这里添加设备识别代码,然后再根据不同的设备,做相应的事情,这里主要是MSC的处理和HID设备的处理,同样也可以添加其他的设备.
&&case HOST_USR_INPUT:& &
& & /*The function should return user response true to move to class state */
& & & && &//修改:添加MSC-HID自动判别,然后再初始化CALSS-CB
& & & & & & & & if(JB_MSC_HID(phost,0)){ //0:判别MSC,1:判别HID
& & & & & & & & & & & & SetHOST_USB_MODE(0);
& & & & & & & & & & & & phost-&class_cb=&USBH_MSC_
& & & & & & & & & & & & if((phost-&class_cb-&Init(pdev, phost)) == USBH_OK){
& & & & & & & & & & & & & & & & phost-&gState&&= HOST_CLASS_REQUEST;& &&&
& & & & & & & & & & & & }& &&&
& & & & & & & & }else{
& & & & & & & & & & & & if(JB_MSC_HID(phost,1)){ //0:判别MSC,1:判别HID
& & & & & & & & & & & & & & & & SetHOST_USB_MODE(1);
& & & & & & & & & & & & & & & & phost-&class_cb=&HID_
& & & & & & & & & & & & & & & & //phost-&usr_cb=&USR_C//???????
& & & & & & & & & & & & & & & & if((phost-&class_cb-&Init(pdev, phost)) == USBH_OK){
& & & & & & & & & & & & & & & & & & & & phost-&gState&&= HOST_CLASS_REQUEST;& &&&
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & }
在线时间19 小时
主题帖子好友
中级会员, 积分 338, 距离下一级还需 162 积分
中级会员, 积分 338, 距离下一级还需 162 积分
RE:【MCU实战经验】STM32F207的host USB的MSC和HID的合并开发
case HOST_ENUMERATION:& &&&
& & /* Check for enumeration status */&&
& & if ( USBH_HandleEnum(pdev , phost) == USBH_OK){
& && &/* The function shall return USBH_OK when full enumeration is complete */
& && &/* user callback for end of device basic enumeration */
& && &phost-&usr_cb-&EnumerationDone();
& && &phost-&gState&&= HOST_USR_INPUT;& &
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by查看: 2331|回复: 4
请问STM32F4怎么用LWIP协议栈里面的TFTP协议上传文件
主题帖子精华
新手上路, 积分 41, 距离下一级还需 9 积分
在线时间0 小时
原子大哥以及各位同行高手,我现在做一个项目,目的在STM32F439平台上,把SD卡里面的文件上传到指定服务器。目前已经移植好LWIP协议栈,能ping通板子,并且移植了官方的tftpserver.c文件,先在想通过tftp协议上传文件到指定服务器。各位谁有这方面经验,请假一下。
目前想的方法是:
第一步:用tftpserver.c中的err_t tftp_send_message(struct udp_pcb *upcb, struct ip_addr *to_ip, int to_port, char *buf, int buflen)向指定地址发送写文件请求;
第二步:用tftpserver.c中的void process_tftp_request(struct pbuf *pkt_buf, struct ip_addr *addr, u16_t port)函数处理回应,如果接收到回应后,process_tftp_request函数中的int tftp_process_write(struct udp_pcb *upcb, struct ip_addr *to, int to_port, char *FileName)函数发送数据文件。
基本流程就是上述所说,但是tftp_send_message()函数中的参数struct udp_pcb *upcb,数据结构非常复杂
struct udp_pcb {
/* Common members of all PCB types */
/* Protocol specific PCB members */
& struct udp_pcb *
& /* ports are in host byte order */
& u16_t local_port, remote_
#if LWIP_IGMP
& /* outgoing network interface for multicast packets */
& struct ip_addr multicast_
#endif /* LWIP_IGMP */
#if LWIP_UDPLITE
& /* used for UDP_LITE only */
& u16_t chksum_len_rx, chksum_len_
#endif /* LWIP_UDPLITE */
& /* receive callback function
& &* addr and port are in same byte order as in the pcb
& &* The callback is responsible for freeing the pbuf
& &* if it's not used any more.
& &* ATTENTION: Be aware that 'addr' points into the pbuf 'p' so freeing this pbuf
& &* & & & & & &makes 'addr' invalid, too.
& &* @param arg user supplied argument (udp_pcb.recv_arg)
& &* @param pcb the udp_pcb which received data
& &* @param p the packet buffer that was received
& &* @param addr the remote IP address from which the packet was received
& &* @param port the remote port from which the packet was received
& void (* recv)(void *arg, struct udp_pcb *pcb, struct pbuf *p,
& & struct ip_addr *addr, u16_t port);
& /* user-supplied argument for the recv callback */
& void *recv_ &
不知道怎么向这个结构体指针传参数?
并且一般FTP传文件都要知道对方IP以及“用户名,密码”,可以这个发消息的结构体中没有涉及到“用户名,密码”方面。
谁有这方面的开发经验,请赐教,谢谢!
主题帖子精华
金钱114239
在线时间853 小时
帮顶。。。。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
初级会员, 积分 122, 距离下一级还需 78 积分
在线时间34 小时
请问有人解决这个发送文件的问题吗
主题帖子精华
初级会员, 积分 68, 距离下一级还需 132 积分
在线时间22 小时
因为这是TFTP,没有FTP里的那种用户验证。。。所以自然没有账户和密码
主题帖子精华
金牌会员, 积分 1368, 距离下一级还需 1632 积分
在线时间151 小时
可以参考下这个
Powered by}

我要回帖

更多关于 你当前客户端不支持校 的文章

更多推荐

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

点击添加站长微信