OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10123|回复: 25

智能家居检测控制-C#编写的上位机软件实现对STM32下位机的控制

[复制链接]

12

主题

46

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2015-11-27
在线时间
109 小时
发表于 2016-4-6 11:54:08 | 显示全部楼层 |阅读模式
这是楼主上学期的课程设计,主要是通过上位机发送命令给下位机,下位机再实现对各设备的控制,具体请见附件(包括上位机程序、下位机程序、硬件原理图、报告)。个人觉得非常适合学习硬件的朋友,可以开拓开发思维。毕竟大部分工作是上位机编写以及通信协议设计,对学软件的朋友也有一定的参考价值。

project.zip

6.22 MB, 下载次数: 10010

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

46

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2015-11-27
在线时间
109 小时
 楼主| 发表于 2017-4-26 20:55:48 | 显示全部楼层
llsjing 发表于 2017-4-26 16:01
楼主,怎样在c#窗体应用程序中改变stm32的定时器的频率啊?定时器的频率控制着正弦波的频率 ,就是我想在窗 ...

窗体中放五个控件:文本框,三个按钮,串口。
1、设置好串口参数(波特率,串口号等等)
2、给三个按钮注册按钮单击事件,第一个按钮单击根据串口参数打开串口(记得用try-catch),第二个按钮单击根据串口参数关闭串口(也要用try-catch),第三按钮用来发送数据,这个按钮的单击事件里面先读取文本框中的文本(先进行合法性判断,例如你要发送数字出去,就要检查文本框中的内容是不是数字,如果不是要给出错误提示),然后将文本发送出去
上位机基本就是这样了。(你也可以加入label之类的控件使界面更友好)
下位机你在串口中断里面读取上位机发过来的值,然后根据这个值设置定时器的频率就可以了,最后再根据这个频率输出相应的正弦波
回复 支持 1 反对 0

使用道具 举报

12

主题

46

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2015-11-27
在线时间
109 小时
 楼主| 发表于 2016-4-6 11:56:21 | 显示全部楼层
该图是上位机软件界面
112651p46uull322ja6oj4.png.thumb.jpg
回复 支持 1 反对 0

使用道具 举报

10

主题

146

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-12-19
在线时间
99 小时
发表于 2016-6-5 13:15:19 | 显示全部楼层
不错的  谢谢分享  之前做过小串口软件  有时会莫名的假死  现在还没找到原因   学习了
回复 支持 反对

使用道具 举报

4

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2016-5-28
在线时间
14 小时
发表于 2016-6-7 15:01:36 | 显示全部楼层
谢谢分享 正在学习上位机
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-1-19
在线时间
9 小时
发表于 2016-6-14 17:21:29 | 显示全部楼层
多谢分享!!!
回复 支持 反对

使用道具 举报

25

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2016-8-23
在线时间
50 小时
发表于 2017-3-8 12:32:38 | 显示全部楼层
请问您有没有c#的学习资料啊。。小弟急求一份。791524579
回复 支持 反对

使用道具 举报

12

主题

46

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2015-11-27
在线时间
109 小时
 楼主| 发表于 2017-3-11 14:10:24 | 显示全部楼层
longshengma 发表于 2017-3-8 12:32
请问您有没有c#的学习资料啊。。小弟急求一份。791524579

链接:http://pan.baidu.com/s/1geK024b 密码:l7go
我看的就是这个,你看看能不能下,不行的话可以去淘宝看看,这种视频教程很多的
回复 支持 反对

使用道具 举报

25

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2016-8-23
在线时间
50 小时
发表于 2017-3-13 16:54:25 | 显示全部楼层
氢氦李铍硼 发表于 2017-3-11 14:10
链接:http://pan.baidu.com/s/1geK024b 密码:l7go
我看的就是这个,你看看能不能下,不行的话可以去淘 ...

太谢谢您了
回复 支持 反对

使用道具 举报

hsc1992 该用户已被删除
发表于 2017-3-17 14:13:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-2-15
在线时间
11 小时
发表于 2017-4-26 16:01:27 | 显示全部楼层
楼主,怎样在c#窗体应用程序中改变stm32的定时器的频率啊?定时器的频率控制着正弦波的频率 ,就是我想在窗体中频率一栏输入一个数,在示波器上显示的正弦波的频率就是这个数,请问这个怎么实现啊?请求解答
回复 支持 反对

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-2-15
在线时间
11 小时
发表于 2017-4-26 22:38:15 | 显示全部楼层
氢氦李铍硼 发表于 2017-4-26 20:55
窗体中放五个控件:文本框,三个按钮,串口。
1、设置好串口参数(波特率,串口号等等)
2、给三个按钮 ...

非常感谢
回复 支持 反对

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-2-15
在线时间
11 小时
发表于 2017-4-27 16:15:47 | 显示全部楼层
氢氦李铍硼 发表于 2017-4-26 20:55
窗体中放五个控件:文本框,三个按钮,串口。
1、设置好串口参数(波特率,串口号等等)
2、给三个按钮 ...

private void button3_Click(object sender, EventArgs e)
        {

            byte [] Data = new byte [1];
            if (serialPort1.IsOpen)
            {
                if (textBox1.Text != "")
                {
                    if (!radioButton1.Checked)
                    {
                        try
                        {
                            serialPort1.WriteLine(textBox1.Text);

                        }
                        catch (Exception err)
                        {
                            MessageBox.Show("串口数据写入错误", "错误");

                        }

                    }
                    else
                    {
                        int t = Convert.ToInt32(textBox1.Text);
                        string str=t.ToString();
                        int i = str.Length;
                        Data[0] = (byte )Convert.ToInt32(str.Substring(0,i),10);
                        serialPort1.Write(Data,0,1);

                    }
                }

            }

        }
  
    }
}


Data[0] = (byte )Convert.ToInt32(str.Substring(0,i),10);
serialPort1.Write(Data,0,1);
请问,在这里我只能输入一个字节的整数,最大值为255,我想在文本框中输入16位或32位的整数得怎么改啊?(因为serialPort1.Write中的Data限制为byte[ ]型数组)
回复 支持 反对

使用道具 举报

12

主题

46

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2015-11-27
在线时间
109 小时
 楼主| 发表于 2017-4-27 21:11:57 | 显示全部楼层
llsjing 发表于 2017-4-27 16:15
private void button3_Click(object sender, EventArgs e)
        {

            int i = Convert.ToInt32(textBox1.Text);
            byte[] intbuff = BitConverter.GetBytes(i);
            int j = BitConverter.ToInt32(intbuff, 0);
            textBox2.Text = j.ToString();
我试了一下,把一个文本框里的字符串转成整数,再转成字节数组,再转成整数,没有问题,你试试看
回复 支持 反对

使用道具 举报

7

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2016-12-2
在线时间
35 小时
发表于 2017-4-28 11:34:03 | 显示全部楼层
mark!!!!
回复 支持 反对

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-2-15
在线时间
11 小时
发表于 2017-5-1 09:00:14 | 显示全部楼层
氢氦李铍硼 发表于 2017-4-27 21:11
int i = Convert.ToInt32(textBox1.Text);
            byte[] intbuff = BitConverter.Get ...

哦哦,好的
回复 支持 反对

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-2-15
在线时间
11 小时
发表于 2017-5-1 09:07:51 | 显示全部楼层
氢氦李铍硼 发表于 2017-4-27 21:11
int i = Convert.ToInt32(textBox1.Text);
            byte[] intbuff = BitConverter.Get ...

我是想把16位或32位的整数发给串口,现在发给串口只能发一个8位的整数
回复 支持 反对

使用道具 举报

12

主题

46

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2015-11-27
在线时间
109 小时
 楼主| 发表于 2017-5-1 10:06:54 | 显示全部楼层
llsjing 发表于 2017-5-1 09:07
我是想把16位或32位的整数发给串口,现在发给串口只能发一个8位的整数

把16位或32位的整数转换成byte类型存在字节数组里发送,相当于每次发送8位,分两次或四次发送出去,下位机再将这些数据进行处理得到原来的整数
回复 支持 反对

使用道具 举报

11

主题

179

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
1103
注册时间
2016-7-19
在线时间
168 小时
发表于 2017-5-2 08:43:34 | 显示全部楼层
谢谢分享!!
回复 支持 反对

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-2-15
在线时间
11 小时
发表于 2017-5-3 10:11:20 | 显示全部楼层
氢氦李铍硼 发表于 2017-5-1 10:06
把16位或32位的整数转换成byte类型存在字节数组里发送,相当于每次发送8位,分两次或四次发送出去,下位 ...

哦哦,谢谢
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2017-5-3
在线时间
13 小时
发表于 2017-5-3 12:24:56 | 显示全部楼层
下载了试了一下   不怎么样 不够完善 有待提高。。。。。。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2017-2-14
在线时间
1 小时
发表于 2017-7-14 13:23:00 | 显示全部楼层
非常感谢
回复 支持 反对

使用道具 举报

1

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
金钱
279
注册时间
2019-8-29
在线时间
31 小时
发表于 2019-9-3 17:00:16 | 显示全部楼层
非常感谢分享
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2019-9-18
在线时间
0 小时
发表于 2019-9-18 09:22:38 来自手机 | 显示全部楼层
非常感谢楼主
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-7-28
在线时间
6 小时
发表于 2019-10-18 11:27:43 | 显示全部楼层
感谢楼主
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2022-3-25
在线时间
0 小时
发表于 2022-3-25 11:09:36 | 显示全部楼层
正缺这个
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 00:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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