找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7014|回复: 14
打印 上一主题 下一主题
收起左侧

stm32温湿度-超声波-LCD1602结合项目 附Proteus仿真程序

  [复制链接]
跳转到指定楼层
楼主
程序实现功能:
程序基于stm32芯片实现了控制LED灯亮灭、按键控制、串口通信、电机控制、温湿度数据采集、超声波测距、LCD显示屏显示内容这几个功能,并用proteus8进行仿真。
1.电路图
     1、我设计的电路图如下所示:
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

2. 程序功能介绍
程序总共包括控制LED灯亮灭、按键控制、串口通信、电机控制、温湿度数据采集、超声波测距、LCD显示屏显示内容这几个功能,以下是这些功能的介绍:
2.1. LED灯亮灭与按键控制
程序默认运行时,两个LED灯会被点亮。当按下按钮后,两个LED灯会闪烁。

2.2. 串口通信
程序运行时,虚拟终端接串口通信用到的接收端和发送端,通过配置波特率、传输的奇偶校验位、停止位、字长以及重定向,将printf函数打印的内容打印到虚拟终端上。
2.3. 电机的控制
通过L298芯片,改变功率,来控制电机的转动。

2.4. 温湿度数据采集
DHT11温湿度传感器来采集温湿度信息。
通过了解DHT11的工作时序,设计好对应的延时函数,进行数据采集,同时通过循环将每次采集的数据打印在虚拟终端上。
2.5. 超声波测距
通过超声波测距模块来进行测距。
通过了解超声波测距模块的时序,利用定时器,采集测到的距离,并且通过循环打印在虚拟终端上。
2.6. LCD液晶显示器显示数据
客户端可以通过发送database”字符串进入到数据库的相关服务,在选择相应功能执行。如下图所示:
通过了解LM16016l中各引脚功能,相关控制指令以及写时序和读时序,在程序运行时,在显示屏上打印“hello”。
3.具体代码如下:
* 文件名  : UltrasonicWave.c
* 描述    :超声波测距模块,UltrasonicWave_Configuration()函数
             初始化超声模块,UltrasonicWave_StartMeasure()函数
                         启动测距,并将测得的数据通过串口1打印出来         
* 实验平台:野火STM32开发板
* 硬件连接:------------------
*          | PC8  - TRIG      |
*          | PC9  - ECHO      |
*           ------------------
* 库版本  :ST3.5.0
UltrasonicWave.H

  1. #ifndef __UltrasonicWave_H
  2. #define        __UltrasonicWave_H

  3. void UltrasonicWave_Configuration(void);               //对超声波模块初始化
  4. void UltrasonicWave_StartMeasure(void);                //开始测距,发送一个>10us的脉冲,然后测量返回的高电平时间

  5. #endif /* __UltrasonicWave_H */
复制代码

UltrasonicWave.c
*********************************************************************************/
#include "./Wave/UltrasonicWave.h"
#include "./usart/bsp_usart.h"
#include "./Tim2/TIM2.h"

#define        TRIG_PORT      GPIOC                //TRIG      
#define        ECHO_PORT      GPIOC                //ECHO
#define        TRIG_PIN       GPIO_Pin_8   //TRIG      
#define        ECHO_PIN       GPIO_Pin_9        //ECHO   

unsigned short int UltrasonicWave_Distance;      //计算出的距离   

/*
* 函数名:DelayTime_us
* 描述  :1us延时函数
* 输入  :Time           延时的时间 US
* 输出  :无        
*/
void DelayTime_us(int Time)   
{
   unsigned char i;
   for ( ; Time>0; Time--)
     for ( i = 0; i < 72; i++ );
}

/*
* 函数名:UltrasonicWave_Configuration
* 描述  :超声波模块的初始化
* 输入  :无
* 输出  :无        
*/
void UltrasonicWave_Configuration(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;        
                 
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
   
  GPIO_InitStructure.GPIO_Pin = TRIG_PIN;                                         //PC8接TRIG
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                     //设为推挽输出模式
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 
  GPIO_Init(TRIG_PORT, &GPIO_InitStructure);                         //初始化外设GPIO

  GPIO_InitStructure.GPIO_Pin = ECHO_PIN;                                     //PC9接ECH0
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;                 //设为输入
  GPIO_Init(ECHO_PORT,&GPIO_InitStructure);                                                 //初始化GPIOA
}

/*
* 函数名:UltrasonicWave_CalculateTime
* 描述  :计算距离
* 输入  :无
* 输出  :无        
*/
void UltrasonicWave_CalculateTime(void)
{
   UltrasonicWave_Distance=TIM_GetCounter(TIM2)*5*34/2000;
}

/*
* 函数名:UltrasonicWave_StartMeasure
* 描述  :开始测距,发送一个>10us的脉冲,然后测量返回的高电平时间
* 输入  :无
* 输出  :无        
*/
void UltrasonicWave_StartMeasure(void)
{
  GPIO_SetBits(TRIG_PORT,TRIG_PIN);                   //送>10US的高电平
  DelayTime_us(20);                                      //延时20US
  GPIO_ResetBits(TRIG_PORT,TRIG_PIN);
  
  while(!GPIO_ReadInputDataBit(ECHO_PORT,ECHO_PIN));                     //等待高电平
  TIM_Cmd(TIM2, ENABLE);                                             //开启时钟
  while(GPIO_ReadInputDataBit(ECHO_PORT,ECHO_PIN));                         //等待低电平
  TIM_Cmd(TIM2, DISABLE);                                                         //定时器2失能
  UltrasonicWave_CalculateTime();                                                                         //计算距离
  TIM_SetCounter(TIM2,0);

        printf("\r\ndistance:%d%d cm\r\n",UltrasonicWave_Distance/256,UltrasonicWave_Distance%256);        
            
}

motor.h
  1. #ifndef __MOTOR_H
  2. #define        __MOTOR_H
  3. #include "stm32f10x.h"
  4. #define  DEBUG_MOTOR_CLK        RCC_APB2Periph_GPIOB
  5. #define  MOTOR_GPIO                        GPIOB
  6. #define         Motor_Pin_1                GPIO_Pin_13        
  7. #define         Motor_Pin_2                GPIO_Pin_14
  8. void motor_init(void);
  9. void motor_stop(void);

  10. #endif
复制代码
motor.c:
  1. #include <./MOTOR/motor.h>
  2. //初始化电机,让电机跑起来
  3. void motor_init(void)
  4. {
  5.         GPIO_InitTypeDef GPIO_InitStructure;
  6.         GPIO_InitStructure.GPIO_Pin = Motor_Pin_1 | Motor_Pin_2;
  7.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  8.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  9.         GPIO_Init(MOTOR_GPIO, &GPIO_InitStructure);
  10.         GPIO_SetBits(MOTOR_GPIO,Motor_Pin_1);
  11.         GPIO_ResetBits(MOTOR_GPIO,Motor_Pin_2);
  12. }
  13. //让电机停止
  14. void motor_stop(void)
  15. {
  16.         GPIO_InitTypeDef GPIO_InitStructure;
  17.         GPIO_InitStructure.GPIO_Pin = Motor_Pin_1 | Motor_Pin_2;
  18.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  19.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  20.         GPIO_Init(MOTOR_GPIO, &GPIO_InitStructure);
  21.         GPIO_SetBits(MOTOR_GPIO,Motor_Pin_1);
  22.         GPIO_SetBits(MOTOR_GPIO,Motor_Pin_2);
  23. }
复制代码
温湿度.H
  1. #ifndef __DHT11_H
  2. #define        __DHT11_H
  3. #include "stm32f10x.h"

  4. /************************** DHT11 数据类型定义********************************/
  5. typedef struct
  6. {
  7.         uint8_t  humi_int;                //湿度的整数部分
  8.         uint8_t  humi_deci;                 //湿度的小数部分
  9.         uint8_t  temp_int;                 //温度的整数部分
  10.         uint8_t  temp_deci;                 //温度的小数部分
  11.         uint8_t  check_sum;                 //校验和
  12.                                  
  13. } DHT11_Data_TypeDef;

  14. /************************** DHT11 连接引脚定义********************************/
  15. #define      DHT11_Dout_SCK_APBxClock_FUN              RCC_APB2PeriphClockCmd
  16. #define      DHT11_Dout_GPIO_CLK                       RCC_APB2Periph_GPIOC

  17. #define      DHT11_Dout_GPIO_PORT                      GPIOC
  18. #define      DHT11_Dout_GPIO_PIN                       GPIO_Pin_15

  19. /************************** DHT11 函数宏定义********************************/
  20. #define      DHT11_Dout_0                                    GPIO_ResetBits ( DHT11_Dout_GPIO_PORT, DHT11_Dout_GPIO_PIN )
  21. #define      DHT11_Dout_1                                    GPIO_SetBits ( DHT11_Dout_GPIO_PORT, DHT11_Dout_GPIO_PIN )

  22. #define      DHT11_Dout_IN()                                  GPIO_ReadInputDataBit ( DHT11_Dout_GPIO_PORT, DHT11_Dout_GPIO_PIN )



  23. /************************** DHT11 函数声明 ********************************/
  24. void                     DHT11_Init                      ( void );
  25. uint8_t                  DHT11_Read_TempAndHumidity      ( DHT11_Data_TypeDef * DHT11_Data );
  26. void dht11_delay_ms(int32_t time);
  27. void dht11_delay_us(int32_t time);

  28. #endif /* __DHT11_H */

复制代码
温湿度.c
  1. /**
  2.   ******************************************************************************
  3.   * @file    bsp_dht11.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @date    2015-xx-xx
  7.   * @brief   温湿度传感器应用函数接口
  8.   ******************************************************************************
  9. */

  10. #include "./dht11/bsp_dht11.h"
  11. #include "./systick/bsp_SysTick.h"
复制代码

LCD.H
  1. #ifndef __LCD_H
  2. #define        __LCD_H
  3. #include "stm32f10x.h"
  4. /************************** LCD连接引脚定义********************************/
  5. #define      LCD_Dout_SCK_APBxClock_FUN              RCC_APB2PeriphClockCmd
  6. #define      LCD_Dout_GPIO_CLK                       RCC_APB2Periph_GPIOC

  7. /**************************  LCD函数********************************/

  8. void LcdWriteCom(uint8_t com);
  9. void LcdGpioInit(void);
  10. void LcdWriteDate(uint8_t date);
  11. void LCD1602Init(void);
  12. void LCD1602WriteCommand(uint8_t comm);
  13. #endif /* __LCD_H */
复制代码
LCD.C
  1. #include "./LCD/bsp_lcd.h"  
  2. #include "./systick/bsp_SysTick.h"
  3. uint8_t const table1[]="hello";
  4. /*初始化用到的引脚*/
  5. void LcdGpioInit(void)   
  6. {
  7.         GPIO_InitTypeDef GPIO_InitStruct;
  8.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
  9.          
  10.         GPIO_WriteBit(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12,Bit_RESET);        
  11.          GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  12.         GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
  13.   GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  14.         GPIO_Init ( GPIOC, &GPIO_InitStruct);
  15. }
  16. /*******************************************************************************
  17. * 函 数 名 :write_com
  18. * 函数功能 :LCD1602 写指令
  19. * 输    入 :无
  20. * 输    出 :无
  21. *******************************************************************************/
  22. void LcdWriteCom(uint8_t com)
  23. {
  24.         Delay_us(20);
  25.         GPIOC->BSRR = 0x00ff0000;
  26.         GPIOC->BSRR = (com);
  27.         GPIO_WriteBit(GPIOC,GPIO_Pin_10,Bit_RESET);        //LCDRS
  28.         GPIO_WriteBit(GPIOC,GPIO_Pin_11,Bit_RESET);        //LCDRW
  29.         GPIO_WriteBit(GPIOC,GPIO_Pin_12,Bit_RESET);        //LCDEN
  30.         Delay_us(10);
  31.         GPIO_WriteBit(GPIOC,GPIO_Pin_12,Bit_SET);        //LCDEN
  32.         Delay_us(10);
  33.         GPIO_WriteBit(GPIOC,GPIO_Pin_12,Bit_RESET);        //LCDEN
  34.         Delay_us(10);
  35. }
  36. /*******************************************************************************
  37. * 函 数 名 :write_Date
  38. * 函数功能 :LCD1602 写数据
  39. * 输    入 :无
  40. * 输    出 :无
  41. *******************************************************************************/
  42. void LcdWriteDate(uint8_t date)
  43. {
  44.         Delay_us(20);
  45.         GPIOC->BSRR = 0x00ff0000;
  46.         GPIOC->BSRR = (date);
  47.         GPIO_WriteBit(GPIOC,GPIO_Pin_10,Bit_SET);        //LCDRS
  48.         GPIO_WriteBit(GPIOC,GPIO_Pin_11,Bit_RESET);        //LCDRW
  49.         GPIO_WriteBit(GPIOC,GPIO_Pin_12,Bit_RESET);        //LCDEN
  50.         Delay_us(10);
  51.         GPIO_WriteBit(GPIOC,GPIO_Pin_12,Bit_SET);        //LCDEN
  52.         Delay_us(10);
  53.         GPIO_WriteBit(GPIOC,GPIO_Pin_12,Bit_RESET);        //LCDEN
  54.         Delay_us(10);
  55. }
  56. /*******************************************************************************
  57. * 函 数 名 :LCD1602Init
  58. * 函数功能 :LCD1602初始化
  59. * 输    入 :无
  60. * 输    出 :无
  61. *******************************************************************************/
  62. void LCD1602Init(void)
  63. {
  64.         uint8_t index=0;
  65.         Delay_ms(10);
  66.         LcdWriteCom(0x38);  //设置16*2显示,8位数据接口
  67.         LcdWriteCom(0x0c); //开显示,显示光标且闪烁
  68.         LcdWriteCom(0x06);//写一个指针自动加一
  69.         LcdWriteCom(0x01);//清屏  
  70.         Delay_ms(10);//延时一段时间时间,等待LCD1602稳定        
  71.         
  72.         LcdWriteCom(0x80);//设置第一行 数据地址指针
  73.         for(index=0;index<13;index++)
  74.                 LcdWriteDate(table1[index]);  //写入数据
  75.         
  76. //        LcdWriteCom(0xc0);//设置第二行 数据地址指针
  77. //        for(index=0;index<7;index++)
  78. //                LcdWriteDate(table2[index]);  //写入数据
  79. }
  80. /*******************************************************************************
  81. * 函 数 名 :LCD1602WriteCommand
  82. * 函数功能 :显示指令到屏幕 U D L R S
  83. * 输    入 :comm 字符格式
  84. * 输    出 :无
  85. *******************************************************************************/
  86. void LCD1602WriteCommand(uint8_t comm)
  87. {
  88.         LcdWriteCom(0xc0 + 14);
  89.         LcdWriteDate(comm);  //写入数据   
  90. }
复制代码
main.c
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @date    2020-xx-xx
  7.   * @brief   dht11温湿度传感器测试实验
  8.   ******************************************************************************
  9. */
  10.   
  11. #include "stm32f10x.h"
  12. #include "./systick/bsp_SysTick.h"
  13. #include "./dht11/bsp_dht11.h"
  14. #include "./usart/bsp_usart.h"
  15. #include "./Key/bsp_key.h"
  16. #include "./Led/bsp_led.h"
  17. #include "./LCD/bsp_lcd.h"
  18. #include "./MOTOR/motor.h"
  19. #include "./Tim2/TIM2.h"
  20. #include "./Wave/UltrasonicWave.h"
  21. /**
  22.   * @brief  主函数
  23.   * @param  无  
  24.   * @retval 无
  25.   */
  26. int main(void)
  27. {
  28.         
  29.         DHT11_Data_TypeDef DHT11_Data;
  30.         RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
  31.         
  32.         
  33.         /* 配置SysTick 为1us中断一次 */
  34.         SysTick_Init();
  35.         LED_GPIO_Config();
  36.         //LED1_ON;
  37.         LED2_ON;
  38.         LED3_ON;
  39.         motor_init();
  40.         //NVIC_Configuration();
  41.         TIM2_Configuration();
  42.         UltrasonicWave_Configuration();
  43.         LcdGpioInit();
  44.         LCD1602Init();

  45.         USART_Config();//初始化串口1
  46.         NVIC_Configuration();
  47.         printf("\r\n***秉火STM32 dht11 温湿度传感器实验***\r\n");

  48.         /*初始化DTT11的引脚*/
  49.         DHT11_Init();
  50.         //printf("22\n");

  51.         UltrasonicWave_StartMeasure();
  52.                                 dht11_delay_ms(100);
  53.         while(1)
  54.         {
  55.                         //调用DHT11_Read_TempAndHumidity读取温湿度,若成功则输出该信息
  56.                         if( DHT11_Read_TempAndHumidity ( & DHT11_Data ) == SUCCESS)
  57.                         {
  58.                         
  59.                                 printf("\r\n读取DHT11成功!\r\n\r\n湿度为%d.%d %RH ,温度为 %d.%d℃ \r\n",DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci);
  60.                         }                        
  61.                         else
  62.                         {
  63.                                 printf("Read DHT11 ERROR!\r\n");
  64.                         }
  65.                         Delay_ms(100);
  66.                         UltrasonicWave_StartMeasure();
  67.                                 dht11_delay_ms(100);
  68.                
  69.                         
  70.                         
  71.                         
  72.                         if( Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN) == KEY_ON  )
  73.                         {
  74.                                 /*LED2关闭*/
  75.                                 LED2_OFF;
  76.                                 motor_init();
  77.                                 
  78.                                 
  79.                         }

  80.                         if( Key_Scan(KEY2_GPIO_PORT,KEY2_GPIO_PIN) == KEY_ON  )
  81.                         {
  82.                                 /*LED3关闭*/
  83.                                 LED3_OFF;        
  84.                         }               
  85.                         
  86.                
  87.                
  88.                
  89.                         
  90.         }
  91.         return 0;

  92.         
  93. }
  94. /*********************************************END OF FILE**********************/
复制代码

全部资料51hei下载地址:
stm32温湿度-超声波-LCD结合项目.7z (540.61 KB, 下载次数: 723)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏10 分享淘帖 顶3 踩
回复

使用道具 举报

沙发
ID:304785 发表于 2020-7-16 23:44 | 只看该作者
这个是牛的,给楼主点个赞
回复

使用道具 举报

板凳
ID:139339 发表于 2020-7-30 00:23 | 只看该作者
看到能仿真成功,我也试试
回复

使用道具 举报

地板
ID:935902 发表于 2021-6-14 19:04 | 只看该作者
为什么keil5显示

..\..\Output\DHT11.axf: error: L6002U: Could not open file ..\..\output\core_cm3.o: No such file or directory
Finished: 0 information, 0 warning, 0 error and 1 fatal error messages.
"..\..\Output\DHT11.axf" - 1 Error(s), 5 Warning(s).
Target not created.
Build Time Elapsed:  00:00:10
回复

使用道具 举报

5#
ID:934599 发表于 2021-6-15 09:16 | 只看该作者
LCD液晶显示器怎么修改显示
回复

使用道具 举报

6#
ID:935902 发表于 2021-6-17 11:20 | 只看该作者
撞南墙 发表于 2021-6-14 19:04
为什么keil5显示

..\..\Output\DHT11.axf: error: L6002U: Could not open file ..\..\output\core_cm3. ...

把if 改成else if 好了
回复

使用道具 举报

7#
ID:935902 发表于 2021-6-17 11:22 | 只看该作者
撞南墙 发表于 2021-6-14 19:04
为什么keil5显示

..\..\Output\DHT11.axf: error: L6002U: Could not open file ..\..\output\core_cm3. ...

因为用户名是中文的原因
回复

使用道具 举报

8#
ID:387687 发表于 2022-3-14 12:55 | 只看该作者

看到能仿真成功,我也试试
回复

使用道具 举报

9#
ID:972656 发表于 2022-5-25 19:07 | 只看该作者
在仿真中
回复

使用道具 举报

10#
ID:972656 发表于 2022-5-25 19:16 | 只看该作者
*** Using Compiler 'V5.06 update 1 (build 61)', folder: 'E:\keil\ARM\ARMCC\Bin'
Build target 'Target 1'
compiling UltrasonicWave.c...
UltrasonicWave.c(1): error:  #5: cannot open source input file "./Wave/UltrasonicWave.h": No such file or directory
  #include "./Wave/UltrasonicWave.h"
UltrasonicWave.c: 0 warnings, 1 error
compiling w.c...
w.c(11): error:  #5: cannot open source input file "./dht11/bsp_dht11.h": No such file or directory
  #include "./dht11/bsp_dht11.h"
w.c: 0 warnings, 1 error
compiling LCD.c...
LCD.c(1): error:  #5: cannot open source input file "LCD/bsp_LCD.h": No such file or directory
  #include "LCD/bsp_LCD.h"  
LCD.c: 0 warnings, 1 error
compiling main.c...
E:\keil\ARM\PACK\Keil\STM32F1xx_DFP\1.0.5\Device\Include\stm32f10x.h(96): error:  #35: #error directive: "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
   #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
main.c: 0 warnings, 1 error
".\Objects\1.axf" - 4 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed:  00:00:00
回复

使用道具 举报

11#
ID:972656 发表于 2022-5-25 19:36 | 只看该作者
   #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
回复

使用道具 举报

12#
ID:972656 发表于 2022-5-25 21:35 | 只看该作者
撞南墙 发表于 2021-6-14 19:04
为什么keil5显示

..\..\Output\DHT11.axf: error: L6002U: Could not open file ..\..\output\core_cm3. ...

你这个好像是目标没有创建
回复

使用道具 举报

13#
ID:1020198 发表于 2022-5-29 10:56 | 只看该作者
试了一下能仿真成功,牛!
回复

使用道具 举报

14#
ID:1045113 发表于 2023-4-15 22:25 | 只看该作者
测量出来的距离误差有点大,把UltrasonicWave_Distance=TIM_GetCounter(TIM2)*5*34/2000;
改成UltrasonicWave_Distance=TIM_GetCounter(TIM2)*0.79;
会好很多
回复

使用道具 举报

15#
ID:743691 发表于 2023-4-17 18:41 | 只看该作者
看到能仿真成功,我也试试,不知道8.8能不能行
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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