stm32f407+rtthread 使用 ec20 ppp拨号

stm32f407+rtthread 使用 ec20 ppp拨号

    • 开发环境
    • 一、工程创建
    • 二、模块添加
    • 三、参数配置
    • 四、测试

开发环境

IDE: RT-Thread Studio
操作系统: rt-thread-4.0.2
芯片型号: STM32F407VG
控制台端口: Uart1 (TX: PB6, RX:PB7)
EC20端口: Uart2 (TX: PA2, RX: PA3), 电源控制引脚 PA5

一、工程创建

新建 RT-Thread 项目,点下一步
stm32f407+rtthread 使用 ec20 ppp拨号_第1张图片
在新窗口中进行项目配置:

  • 输入工程名称
  • 选择基于芯片
  • 系统版本选择 4.0.2
  • 芯片类型选择 STM32F407VG
  • 控制台串口选择 UART1 发送脚 PB6 接收脚 PB7
  • 调试器 J-Link 接口SWD

点完成
stm32f407+rtthread 使用 ec20 ppp拨号_第2张图片

二、模块添加

双击 RT-Thread Settings 进入软件包中心
stm32f407+rtthread 使用 ec20 ppp拨号_第3张图片
点更多配置
stm32f407+rtthread 使用 ec20 ppp拨号_第4张图片
点组件,修改串口缓冲区大小
stm32f407+rtthread 使用 ec20 ppp拨号_第5张图片
还是组件选项卡下滑,POSIX层与C标准库按图片勾选,不勾选后续添加ppp组件编译报错
在这里插入图片描述
切换为软件包选项卡,找到 ppp device
stm32f407+rtthread 使用 ec20 ppp拨号_第6张图片
勾选以后按图示配置
stm32f407+rtthread 使用 ec20 ppp拨号_第7张图片
点选回组件选项卡,发现 lwip 已默认开启,修改线程栈大小2048或以上,否则ppp组件编译报错。
stm32f407+rtthread 使用 ec20 ppp拨号_第8张图片
点选示例,network_samples->tcp client
stm32f407+rtthread 使用 ec20 ppp拨号_第9张图片
配置完成后ctrl + s保存配置,ide将自动更新代码到工程中。 随后点击项目名称,点小锤子编译。(会报错,下一节解决)

三、参数配置

点开编译报错位置 ppp_device_ec20.c 第28行
stm32f407+rtthread 使用 ec20 ppp拨号_第10张图片

  • 注释掉 #include
  • 修改 EC20_POWER_PIN 引脚编号 为 5(具体引脚对应编号可查看 drivers/drv_gpio.c 文件中的结构体定义,下附图)
  • 修改 EC20_WARTING_TIME_BASE 为 10000 (时长可根据后续自己测试不断优化,默认2000太短拨号入网容易失败)
    stm32f407+rtthread 使用 ec20 ppp拨号_第11张图片
    stm32f407+rtthread 使用 ec20 ppp拨号_第12张图片
    修改完成后再编译一次,错误消失
    stm32f407+rtthread 使用 ec20 ppp拨号_第13张图片
    下面配置串口,双击 drivers/board.h 打开,第70行开始添加内容:
    stm32f407+rtthread 使用 ec20 ppp拨号_第14张图片
    添加完成后,删除 main.c中的打印函数,不删会烦。
    stm32f407+rtthread 使用 ec20 ppp拨号_第15张图片
    保存,编译,j-link连接板子,插入sim卡,意念连接控制台打印端口串口1,点甲壳虫debug。

四、测试

观察串口工具打印结果如下图所示,就算配置成功
stm32f407+rtthread 使用 ec20 ppp拨号_第16张图片
程序会停在main函数,继续运行
stm32f407+rtthread 使用 ec20 ppp拨号_第17张图片
等待一段事件后看到串口打印如下信息,入网成功
stm32f407+rtthread 使用 ec20 ppp拨号_第18张图片
串口输入 ping baidu.com\r\n 测试一下网络
stm32f407+rtthread 使用 ec20 ppp拨号_第19张图片
输入 tcpclient ip port\r\n 建立tcp连接
在这里插入图片描述
连接建立完成。

应用层详细使用方式示例参见packages/network_samples/tcpclient_sample.c

本文完。

你可能感兴趣的:(stm32,stm32,物联网,嵌入式,socket,单片机)