stm32原理图怎么画啊,不会啊

以STM32单片机为基础,完成微控制器应用系统开发,要求完
成如下功能:
1、能够完成环境温度的获取,精度为0.1摄氏度,(如果做
不出可用固定代替,也有分);
2、能够将获取的环境温度通过串口上发到PC机显示;
3、可以通过两个按键增加或者降低获取温度并上发的频率;

拿着正点原子的开发板电路,照着画就可以了啊!要什么功能加什么器件~

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/750092
  • 这篇博客也不错, 你可以看下【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(四)—— 设备端的其他模块开发
  • 除此之外, 这篇博客: 【毕业设计】基于stm32的语音识别 - 单片机 嵌入式 物联网 语音识别中的 8 上位机模块的开发 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 开发工具为VS,语言为C#。

    首先先新建项目,选择visual C#语言下面的windows窗体应用程序。

    在这里插入图片描述

    然后设置窗体的组件,在工具箱中有各种各样的组件,使用的话可以拖需要的组件进入到form中即可,按照预期的功能设置窗体,最终窗体界面如下:

    在这里插入图片描述
    在该窗体中,预设两个下拉框用来设置端口与波特率,一个开关用来连接和断开上位机和单片机间的通信,一个文本框用来显示当前的状态,一个文本框用来显示历史接收数据,一个下拉框用来选择用户想要单片机呈现的状态,一个按钮用来将用户选择的状态信息传输到单片机一端,从而上位机控制的效果。

    private void Form1_Load(object sender, EventArgs e)
            {
                for (int i = 0; i < 20; i++)
                {
                    try
                    {
                        string str = "COM" + i;
                        serialPort1.PortName = str;
                        serialPort1.Open();
                        comboBox1.Items.Add(str);
                        serialPort1.Close();
                        comboBox1.Text = str;
                    }
                    catch { }
                }
                comboBox1.Text = "COM3";
                comboBox2.Text = "115200";
            }
    
    

    上述代码用来自动设置上位机的端口号,从而实现上位机与单片机的连接,若已知端口和波特率的话,也可直接设置comboBox1.Text为已知端口号,设置comboBox2.Text为已知波特率。

    private void button1_Click(object sender, EventArgs e)
            {
                if(Button_State)
                {
                    try
                    {
                        serialPort1.PortName = comboBox1.Text;
                        serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text, 10);
                        serialPort1.Open();
                        button1.Text = "断开";
                        Button_State = false;
                    }
                    catch (Exception)
                    {
                        if (serialPort1.IsOpen)
                            serialPort1.Close();
                        MessageBox.Show("端口打开失败,请检查端口", "错误");
                    }
                }
                else
                {
                    serialPort1.Close();
                    button1.Text = "连接";
                    Button_State = true;
                }
    
            }
    
    

    上述代码是点击“断开/连接”按钮后触发的函数代码,用变量Button_State表示当前上位机与单片机间是否连接,根据连接情况与否,通过if 语句执行对应的代码,通过函数serialPort1.Close()来断开连接,通过serialPort1.PortName来设置端口号,通过serialPort1.BaudRate来设置波特率,通过serialPort1.Open()来开启连接。

    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                textBox2.Text=serialPort1.ReadExisting();
                if (textBox2.Text.Contains("LCD"))
                    textBox2.Text = " ";
                textBox1.AppendText(textBox2.Text);
                if (textBox2.Text.Contains("流")) 
                    textBox3.Text = "流水灯";
                else if (textBox2.Text.Contains("闪"))
                    textBox3.Text = "闪烁";
                else if (textBox2.Text.Contains("第"))
                    textBox3.Text = "第一个";
                else if (textBox2.Text.Contains("灭"))
                    textBox3.Text = "全灭";
                else if (textBox2.Text.Contains("亮"))
                    textBox3.Text = "全亮";
            }
    
    

    上述代码用来显示当前单片机的状态,通过中断的方式,当单片机向上位机传输数据时,就执行以上代码。在单片机的程序中,向上位机传输数据的代码是printf(),而在上位机的程序中,用textBox2.Text即可拿到传输的数据,Contain()函数表示是否包含某个字符,通过设置textBox3.Text从而在窗体中显示当前的状态。

  • 您还可以看一下 朱有鹏老师的STM32标准库的引入视频课程-第3季第6部分课程中的 3.6.1.为什么会有标准外设库小节, 巩固相关知识点