数码之家

 找回密码
 立即注册
搜索
查看: 327|回复: 27

[Arduino] 探索用arduino 和 esp8266 输出1MHz以上方波的代码

[复制链接]
发表于 2024-4-18 15:48:07 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 kindzhon 于 2024-4-19 17:33 编辑

开始用esp32做一个频率计,但没有信号源,有8266,就想着8266的CPU有80MHz和160MHz,输出个几MHz应该没问题,后来发现arduino还是很坑的,

试了N种办法都不行,timer1定时器加中断,digitalWriteFast.h里的digitalToggleFast,都最快只能达到250KHz,于是只能在国外论坛上找,终于发现了这个方法,https://forum.arduino.cc/t/arduino-esp8266-faster-direct-port-write/407251/7
ESP8266加arduino直接编译就好,你可以适当增减下面两个语句
  1.   WRITE_PERI_REG( 0x60000304, myPinBit );
  2.   WRITE_PERI_REG( 0x60000308, myPinBit );
复制代码
增加一组频率就增加,减少一组频率就减少,对,你没看错,就是这样的。
CPU 80MHz
GPIO2输出
1.0653MHz        11组
3.0474MHz        55组
4.0843MHz      121组
完整的4MHz代码如下: Freq_5M.ino.zip (459 Bytes, 下载次数: 0, 售价: 10 家元)


  1. #define myPin 2
  2. #define myPinBit (1<<myPin)

  3. void setup() {
  4.   pinMode(myPin, OUTPUT);
  5. }

  6. void loop() {
  7.   //CPU 80MHz GPIO2输出 1.0653MHz 11组 3.0474 55组 4.084 121组
  8.   os_intr_lock();
  9.   WRITE_PERI_REG( 0x60000304, myPinBit );
  10.   WRITE_PERI_REG( 0x60000308, myPinBit );
  11.   WRITE_PERI_REG( 0x60000304, myPinBit );
  12.   WRITE_PERI_REG( 0x60000308, myPinBit );
  13.   WRITE_PERI_REG( 0x60000304, myPinBit );
  14.   WRITE_PERI_REG( 0x60000308, myPinBit );
  15.   WRITE_PERI_REG( 0x60000304, myPinBit );
  16.   WRITE_PERI_REG( 0x60000308, myPinBit );
  17.   WRITE_PERI_REG( 0x60000304, myPinBit );
  18.   WRITE_PERI_REG( 0x60000308, myPinBit );
  19.   WRITE_PERI_REG( 0x60000304, myPinBit );
  20.   WRITE_PERI_REG( 0x60000308, myPinBit );
  21.   WRITE_PERI_REG( 0x60000304, myPinBit );
  22.   WRITE_PERI_REG( 0x60000308, myPinBit );
  23.   WRITE_PERI_REG( 0x60000304, myPinBit );
  24.   WRITE_PERI_REG( 0x60000308, myPinBit );
  25.   WRITE_PERI_REG( 0x60000304, myPinBit );
  26.   WRITE_PERI_REG( 0x60000308, myPinBit );
  27.   WRITE_PERI_REG( 0x60000304, myPinBit );
  28.   WRITE_PERI_REG( 0x60000308, myPinBit );
  29.   WRITE_PERI_REG( 0x60000304, myPinBit );
  30.   WRITE_PERI_REG( 0x60000308, myPinBit );
  31.     WRITE_PERI_REG( 0x60000304, myPinBit );
  32.   WRITE_PERI_REG( 0x60000308, myPinBit );
  33.   WRITE_PERI_REG( 0x60000304, myPinBit );
  34.   WRITE_PERI_REG( 0x60000308, myPinBit );
  35.   WRITE_PERI_REG( 0x60000304, myPinBit );
  36.   WRITE_PERI_REG( 0x60000308, myPinBit );
  37.   WRITE_PERI_REG( 0x60000304, myPinBit );
  38.   WRITE_PERI_REG( 0x60000308, myPinBit );
  39.   WRITE_PERI_REG( 0x60000304, myPinBit );
  40.   WRITE_PERI_REG( 0x60000308, myPinBit );
  41.   WRITE_PERI_REG( 0x60000304, myPinBit );
  42.   WRITE_PERI_REG( 0x60000308, myPinBit );
  43.   WRITE_PERI_REG( 0x60000304, myPinBit );
  44.   WRITE_PERI_REG( 0x60000308, myPinBit );
  45.   WRITE_PERI_REG( 0x60000304, myPinBit );
  46.   WRITE_PERI_REG( 0x60000308, myPinBit );
  47.   WRITE_PERI_REG( 0x60000304, myPinBit );
  48.   WRITE_PERI_REG( 0x60000308, myPinBit );
  49.   WRITE_PERI_REG( 0x60000304, myPinBit );
  50.   WRITE_PERI_REG( 0x60000308, myPinBit );
  51.   WRITE_PERI_REG( 0x60000304, myPinBit );
  52.   WRITE_PERI_REG( 0x60000308, myPinBit );
  53.     WRITE_PERI_REG( 0x60000304, myPinBit );
  54.   WRITE_PERI_REG( 0x60000308, myPinBit );
  55.   WRITE_PERI_REG( 0x60000304, myPinBit );
  56.   WRITE_PERI_REG( 0x60000308, myPinBit );
  57.   WRITE_PERI_REG( 0x60000304, myPinBit );
  58.   WRITE_PERI_REG( 0x60000308, myPinBit );
  59.   WRITE_PERI_REG( 0x60000304, myPinBit );
  60.   WRITE_PERI_REG( 0x60000308, myPinBit );
  61.   WRITE_PERI_REG( 0x60000304, myPinBit );
  62.   WRITE_PERI_REG( 0x60000308, myPinBit );
  63.   WRITE_PERI_REG( 0x60000304, myPinBit );
  64.   WRITE_PERI_REG( 0x60000308, myPinBit );
  65.   WRITE_PERI_REG( 0x60000304, myPinBit );
  66.   WRITE_PERI_REG( 0x60000308, myPinBit );
  67.   WRITE_PERI_REG( 0x60000304, myPinBit );
  68.   WRITE_PERI_REG( 0x60000308, myPinBit );
  69.   WRITE_PERI_REG( 0x60000304, myPinBit );
  70.   WRITE_PERI_REG( 0x60000308, myPinBit );
  71.   WRITE_PERI_REG( 0x60000304, myPinBit );
  72.   WRITE_PERI_REG( 0x60000308, myPinBit );
  73.   WRITE_PERI_REG( 0x60000304, myPinBit );
  74.   WRITE_PERI_REG( 0x60000308, myPinBit );
  75.     WRITE_PERI_REG( 0x60000304, myPinBit );
  76.   WRITE_PERI_REG( 0x60000308, myPinBit );
  77.   WRITE_PERI_REG( 0x60000304, myPinBit );
  78.   WRITE_PERI_REG( 0x60000308, myPinBit );
  79.   WRITE_PERI_REG( 0x60000304, myPinBit );
  80.   WRITE_PERI_REG( 0x60000308, myPinBit );
  81.   WRITE_PERI_REG( 0x60000304, myPinBit );
  82.   WRITE_PERI_REG( 0x60000308, myPinBit );
  83.   WRITE_PERI_REG( 0x60000304, myPinBit );
  84.   WRITE_PERI_REG( 0x60000308, myPinBit );
  85.   WRITE_PERI_REG( 0x60000304, myPinBit );
  86.   WRITE_PERI_REG( 0x60000308, myPinBit );
  87.   WRITE_PERI_REG( 0x60000304, myPinBit );
  88.   WRITE_PERI_REG( 0x60000308, myPinBit );
  89.   WRITE_PERI_REG( 0x60000304, myPinBit );
  90.   WRITE_PERI_REG( 0x60000308, myPinBit );
  91.   WRITE_PERI_REG( 0x60000304, myPinBit );
  92.   WRITE_PERI_REG( 0x60000308, myPinBit );
  93.   WRITE_PERI_REG( 0x60000304, myPinBit );
  94.   WRITE_PERI_REG( 0x60000308, myPinBit );
  95.   WRITE_PERI_REG( 0x60000304, myPinBit );
  96.   WRITE_PERI_REG( 0x60000308, myPinBit );
  97.     WRITE_PERI_REG( 0x60000304, myPinBit );
  98.   WRITE_PERI_REG( 0x60000308, myPinBit );
  99.   WRITE_PERI_REG( 0x60000304, myPinBit );
  100.   WRITE_PERI_REG( 0x60000308, myPinBit );
  101.   WRITE_PERI_REG( 0x60000304, myPinBit );
  102.   WRITE_PERI_REG( 0x60000308, myPinBit );
  103.   WRITE_PERI_REG( 0x60000304, myPinBit );
  104.   WRITE_PERI_REG( 0x60000308, myPinBit );
  105.   WRITE_PERI_REG( 0x60000304, myPinBit );
  106.   WRITE_PERI_REG( 0x60000308, myPinBit );
  107.   WRITE_PERI_REG( 0x60000304, myPinBit );
  108.   WRITE_PERI_REG( 0x60000308, myPinBit );
  109.   WRITE_PERI_REG( 0x60000304, myPinBit );
  110.   WRITE_PERI_REG( 0x60000308, myPinBit );
  111.   WRITE_PERI_REG( 0x60000304, myPinBit );
  112.   WRITE_PERI_REG( 0x60000308, myPinBit );
  113.   WRITE_PERI_REG( 0x60000304, myPinBit );
  114.   WRITE_PERI_REG( 0x60000308, myPinBit );
  115.   WRITE_PERI_REG( 0x60000304, myPinBit );
  116.   WRITE_PERI_REG( 0x60000308, myPinBit );
  117.   WRITE_PERI_REG( 0x60000304, myPinBit );
  118.   WRITE_PERI_REG( 0x60000308, myPinBit );
  119.     WRITE_PERI_REG( 0x60000304, myPinBit );
  120.   WRITE_PERI_REG( 0x60000308, myPinBit );
  121.   WRITE_PERI_REG( 0x60000304, myPinBit );
  122.   WRITE_PERI_REG( 0x60000308, myPinBit );
  123.   WRITE_PERI_REG( 0x60000304, myPinBit );
  124.   WRITE_PERI_REG( 0x60000308, myPinBit );
  125.   WRITE_PERI_REG( 0x60000304, myPinBit );
  126.   WRITE_PERI_REG( 0x60000308, myPinBit );
  127.   WRITE_PERI_REG( 0x60000304, myPinBit );
  128.   WRITE_PERI_REG( 0x60000308, myPinBit );
  129.   WRITE_PERI_REG( 0x60000304, myPinBit );
  130.   WRITE_PERI_REG( 0x60000308, myPinBit );
  131.   WRITE_PERI_REG( 0x60000304, myPinBit );
  132.   WRITE_PERI_REG( 0x60000308, myPinBit );
  133.   WRITE_PERI_REG( 0x60000304, myPinBit );
  134.   WRITE_PERI_REG( 0x60000308, myPinBit );
  135.   WRITE_PERI_REG( 0x60000304, myPinBit );
  136.   WRITE_PERI_REG( 0x60000308, myPinBit );
  137.   WRITE_PERI_REG( 0x60000304, myPinBit );
  138.   WRITE_PERI_REG( 0x60000308, myPinBit );
  139.   WRITE_PERI_REG( 0x60000304, myPinBit );
  140.   WRITE_PERI_REG( 0x60000308, myPinBit );
  141.     WRITE_PERI_REG( 0x60000304, myPinBit );
  142.   WRITE_PERI_REG( 0x60000308, myPinBit );
  143.   WRITE_PERI_REG( 0x60000304, myPinBit );
  144.   WRITE_PERI_REG( 0x60000308, myPinBit );
  145.   WRITE_PERI_REG( 0x60000304, myPinBit );
  146.   WRITE_PERI_REG( 0x60000308, myPinBit );
  147.   WRITE_PERI_REG( 0x60000304, myPinBit );
  148.   WRITE_PERI_REG( 0x60000308, myPinBit );
  149.   WRITE_PERI_REG( 0x60000304, myPinBit );
  150.   WRITE_PERI_REG( 0x60000308, myPinBit );
  151.   WRITE_PERI_REG( 0x60000304, myPinBit );
  152.   WRITE_PERI_REG( 0x60000308, myPinBit );
  153.   WRITE_PERI_REG( 0x60000304, myPinBit );
  154.   WRITE_PERI_REG( 0x60000308, myPinBit );
  155.   WRITE_PERI_REG( 0x60000304, myPinBit );
  156.   WRITE_PERI_REG( 0x60000308, myPinBit );
  157.   WRITE_PERI_REG( 0x60000304, myPinBit );
  158.   WRITE_PERI_REG( 0x60000308, myPinBit );
  159.   WRITE_PERI_REG( 0x60000304, myPinBit );
  160.   WRITE_PERI_REG( 0x60000308, myPinBit );
  161.   WRITE_PERI_REG( 0x60000304, myPinBit );
  162.   WRITE_PERI_REG( 0x60000308, myPinBit );
  163.     WRITE_PERI_REG( 0x60000304, myPinBit );
  164.   WRITE_PERI_REG( 0x60000308, myPinBit );
  165.   WRITE_PERI_REG( 0x60000304, myPinBit );
  166.   WRITE_PERI_REG( 0x60000308, myPinBit );
  167.   WRITE_PERI_REG( 0x60000304, myPinBit );
  168.   WRITE_PERI_REG( 0x60000308, myPinBit );
  169.   WRITE_PERI_REG( 0x60000304, myPinBit );
  170.   WRITE_PERI_REG( 0x60000308, myPinBit );
  171.   WRITE_PERI_REG( 0x60000304, myPinBit );
  172.   WRITE_PERI_REG( 0x60000308, myPinBit );
  173.   WRITE_PERI_REG( 0x60000304, myPinBit );
  174.   WRITE_PERI_REG( 0x60000308, myPinBit );
  175.   WRITE_PERI_REG( 0x60000304, myPinBit );
  176.   WRITE_PERI_REG( 0x60000308, myPinBit );
  177.   WRITE_PERI_REG( 0x60000304, myPinBit );
  178.   WRITE_PERI_REG( 0x60000308, myPinBit );
  179.   WRITE_PERI_REG( 0x60000304, myPinBit );
  180.   WRITE_PERI_REG( 0x60000308, myPinBit );
  181.   WRITE_PERI_REG( 0x60000304, myPinBit );
  182.   WRITE_PERI_REG( 0x60000308, myPinBit );
  183.   WRITE_PERI_REG( 0x60000304, myPinBit );
  184.   WRITE_PERI_REG( 0x60000308, myPinBit );
  185.     WRITE_PERI_REG( 0x60000304, myPinBit );
  186.   WRITE_PERI_REG( 0x60000308, myPinBit );
  187.   WRITE_PERI_REG( 0x60000304, myPinBit );
  188.   WRITE_PERI_REG( 0x60000308, myPinBit );
  189.   WRITE_PERI_REG( 0x60000304, myPinBit );
  190.   WRITE_PERI_REG( 0x60000308, myPinBit );
  191.   WRITE_PERI_REG( 0x60000304, myPinBit );
  192.   WRITE_PERI_REG( 0x60000308, myPinBit );
  193.   WRITE_PERI_REG( 0x60000304, myPinBit );
  194.   WRITE_PERI_REG( 0x60000308, myPinBit );
  195.   WRITE_PERI_REG( 0x60000304, myPinBit );
  196.   WRITE_PERI_REG( 0x60000308, myPinBit );
  197.   WRITE_PERI_REG( 0x60000304, myPinBit );
  198.   WRITE_PERI_REG( 0x60000308, myPinBit );
  199.   WRITE_PERI_REG( 0x60000304, myPinBit );
  200.   WRITE_PERI_REG( 0x60000308, myPinBit );
  201.   WRITE_PERI_REG( 0x60000304, myPinBit );
  202.   WRITE_PERI_REG( 0x60000308, myPinBit );
  203.   WRITE_PERI_REG( 0x60000304, myPinBit );
  204.   WRITE_PERI_REG( 0x60000308, myPinBit );
  205.   WRITE_PERI_REG( 0x60000304, myPinBit );
  206.   WRITE_PERI_REG( 0x60000308, myPinBit );
  207.     WRITE_PERI_REG( 0x60000304, myPinBit );
  208.   WRITE_PERI_REG( 0x60000308, myPinBit );
  209.   WRITE_PERI_REG( 0x60000304, myPinBit );
  210.   WRITE_PERI_REG( 0x60000308, myPinBit );
  211.   WRITE_PERI_REG( 0x60000304, myPinBit );
  212.   WRITE_PERI_REG( 0x60000308, myPinBit );
  213.   WRITE_PERI_REG( 0x60000304, myPinBit );
  214.   WRITE_PERI_REG( 0x60000308, myPinBit );
  215.   WRITE_PERI_REG( 0x60000304, myPinBit );
  216.   WRITE_PERI_REG( 0x60000308, myPinBit );
  217.   WRITE_PERI_REG( 0x60000304, myPinBit );
  218.   WRITE_PERI_REG( 0x60000308, myPinBit );
  219.   WRITE_PERI_REG( 0x60000304, myPinBit );
  220.   WRITE_PERI_REG( 0x60000308, myPinBit );
  221.   WRITE_PERI_REG( 0x60000304, myPinBit );
  222.   WRITE_PERI_REG( 0x60000308, myPinBit );
  223.   WRITE_PERI_REG( 0x60000304, myPinBit );
  224.   WRITE_PERI_REG( 0x60000308, myPinBit );
  225.   WRITE_PERI_REG( 0x60000304, myPinBit );
  226.   WRITE_PERI_REG( 0x60000308, myPinBit );
  227.   WRITE_PERI_REG( 0x60000304, myPinBit );
  228.   WRITE_PERI_REG( 0x60000308, myPinBit );
  229.    WRITE_PERI_REG( 0x60000304, myPinBit );
  230.   WRITE_PERI_REG( 0x60000308, myPinBit );
  231.   WRITE_PERI_REG( 0x60000304, myPinBit );
  232.   WRITE_PERI_REG( 0x60000308, myPinBit );
  233.   WRITE_PERI_REG( 0x60000304, myPinBit );
  234.   WRITE_PERI_REG( 0x60000308, myPinBit );
  235.   WRITE_PERI_REG( 0x60000304, myPinBit );
  236.   WRITE_PERI_REG( 0x60000308, myPinBit );
  237.   WRITE_PERI_REG( 0x60000304, myPinBit );
  238.   WRITE_PERI_REG( 0x60000308, myPinBit );
  239.   WRITE_PERI_REG( 0x60000304, myPinBit );
  240.   WRITE_PERI_REG( 0x60000308, myPinBit );
  241.   WRITE_PERI_REG( 0x60000304, myPinBit );
  242.   WRITE_PERI_REG( 0x60000308, myPinBit );
  243.   WRITE_PERI_REG( 0x60000304, myPinBit );
  244.   WRITE_PERI_REG( 0x60000308, myPinBit );
  245.   WRITE_PERI_REG( 0x60000304, myPinBit );
  246.   WRITE_PERI_REG( 0x60000308, myPinBit );
  247.   WRITE_PERI_REG( 0x60000304, myPinBit );
  248.   WRITE_PERI_REG( 0x60000308, myPinBit );
  249.   WRITE_PERI_REG( 0x60000304, myPinBit );
  250.   WRITE_PERI_REG( 0x60000308, myPinBit );
  251.   
  252.   
  253.   
  254.   os_intr_unlock();
  255. }
复制代码
有空再发用ESP32测量1Hz-50MHz的代码。



发表于 2024-4-18 15:56:33 | 显示全部楼层
那么问题来了,,你这个所谓的“方波”的上升沿究竟多少,稳定性咋样????
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-18 16:05:32 | 显示全部楼层
adminismk 发表于 2024-4-18 15:56
那么问题来了,,你这个所谓的“方波”的上升沿究竟多少,稳定性咋样???? ...

俺比较穷,没好示波器,请兄弟帮忙测测?谢谢啦
回复 支持 反对

使用道具 举报

发表于 2024-4-18 16:11:04 | 显示全部楼层
什么叫11组,55组,121组?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-18 16:12:47 | 显示全部楼层
人艰不拆了 发表于 2024-4-18 16:11
什么叫11组,55组,121组?

这两句为一组:
  WRITE_PERI_REG( 0x60000304, myPinBit );
  WRITE_PERI_REG( 0x60000308, myPinBit );
回复 支持 反对

使用道具 举报

发表于 2024-4-18 16:17:53 | 显示全部楼层
esp8266那么烂,连个pwm都输出不了吗
回复 支持 反对

使用道具 举报

发表于 2024-4-18 16:19:16 | 显示全部楼层
kindzhon 发表于 2024-4-18 16:12
这两句为一组:
  WRITE_PERI_REG( 0x60000304, myPinBit );
  WRITE_PERI_REG( 0x60000308, myPinBit ); ...

这两句什么意思,输出一个跳变电平?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-18 16:26:54 | 显示全部楼层
人艰不拆了 发表于 2024-4-18 16:19
这两句什么意思,输出一个跳变电平?

对,相当于IO高低电平翻转一次。
回复 支持 反对

使用道具 举报

发表于 2024-4-18 16:28:24 | 显示全部楼层
kindzhon 发表于 2024-4-18 16:26
对,相当于IO高低电平翻转一次。

关键是频率稳定不稳定
回复 支持 反对

使用道具 举报

发表于 2024-4-18 16:52:32 | 显示全部楼层
kindzhon 发表于 2024-4-18 16:26
对,相当于IO高低电平翻转一次。

非硬件输出方波有风险,当你的处理器执行其他某些耗资源任务的时候,IO有可能反应不过来导致输出方波占空比会有差异,是否出问题看系统调度情况、主频、方波频率。
回复 支持 反对

使用道具 举报

发表于 2024-4-18 17:04:21 | 显示全部楼层
应该是用了外置的库吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-18 19:01:05 来自手机浏览器 | 显示全部楼层
bboroo 发表于 2024-4-18 17:04
应该是用了外置的库吧?

这个真没有
回复 支持 反对

使用道具 举报

发表于 2024-4-18 19:09:43 | 显示全部楼层
几块钱的si5351不香吗?最高到200MHz
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-19 09:30:28 来自手机浏览器 | 显示全部楼层
inthsunshine 发表于 2024-4-18 19:09
几块钱的si5351不香吗?最高到200MHz

8266才三四元钱,si5351能既输出方波,又能wifi吗,又当mcu?
回复 支持 反对

使用道具 举报

发表于 2024-4-19 09:34:34 | 显示全部楼层
本帖最后由 inthsunshine 于 2024-4-19 10:35 编辑
kindzhon 发表于 2024-4-19 09:30
8266才三四元钱,si5351能既输出方波,又能wifi吗,又当mcu?

小学语文都没过关,还这么杠,呵呵,当我没说吧

回复 支持 反对

使用道具 举报

发表于 2024-4-19 10:09:23 来自手机浏览器 | 显示全部楼层
话说555能到多大频率?
回复 支持 反对

使用道具 举报

发表于 2024-4-19 11:32:21 | 显示全部楼层
直接在loop里写whie(1)行不行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-4-19 12:32:29 | 显示全部楼层
inthsunshine 发表于 2024-4-19 09:34
小学语文都没过关,还这么杠,呵呵,当我没说吧

我的标题就是“用arduino 和 esp8266 输出”,讲的就是通用ESP8266 wifi模块用arduino输出1M以上的方波,是多用途的SOC或者MCU,而不是专用模块,限定语非常清楚。这是探讨这个特定的8266以前无法解决用arduino代码输出超过125KHz的问题,手头上有8266的人不少,能输出个1M以上的信号源它不香吗?
老牌计算机硕士,可能没你这文学大师水平高,但我想我的意思表达的还是很清楚的。
回复 支持 反对

使用道具 举报

发表于 2024-4-19 13:12:32 | 显示全部楼层
这个方波是不均匀的吧?感觉效果应该是这样的,每组代码产生一个脉冲,loop循环的时候有间隙时间不输出脉冲,代码组数多了,脉冲就多了,间隙时间一样,但是比例减小,所以表现为频率升高?
image.png


回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-5-1 11:30 , Processed in 0.358801 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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