C制作STM32上位机升级工具(完整教程)
9
思路很简单,C#制作一个上位机工具,将读取的bin文件通过串口下发至单片机,一帧数据包含:7字节的Modbus协议帧头+200字节数据更新包(最后一帧少于等于200字节)+2字节的CRC校验码。单片机在boot中解析协议,协议解析无误后,将数据更新包写入Flash中,然后返回特定的数据。上位机根据返回的数据判断本次数据是否写入成功,如果写入成功继续下发新的更新包,如果写入失败重复发送本次更新包。通讯间隔100ms。
开发环境:Visio Studio 2015
一.新建windows窗体应用程序:
二.绘制基本界面:
在工具箱中的公共控件下找到以下三个控件Label、ComboBox、Button,拖拽到Form中。鼠标点击控件后可以在属性栏中修改控件的相应属性。
选中修改串口波特率对应的CommboBox控件,点击Items属性,输入相应的波特率值,保存。其他控件的属性就是改改名字,外形大小、颜色等。
然后再放两个TextBox控件显示加载信息等,以及几个按钮。最后界面如下:
三.添加串口控件以及文件对话框:
在工具箱中找打组件下的SerialPort控件,也就是串口控件;对话框下的OpenFileDialog控件,拖拽到Form下的空区域中
现在所用到的控件都已经加到窗体中了,基本工作已经完成了。接下来开始撸代码了。
四.代码撸起来
1.搜索可用串口,并显示在CommboBox中显示串口名称。双击搜索端口按钮,会自动跳转到代码编辑处,在button_Clik事件函数下添加更新端口的函数。 private void button2_Click(object sender, EventArgs e) { string[] ArryPort = System.IO.Ports.SerialPort.GetPortNames(); comboBox2.Items.Clear(); for (int i = 0; i < ArryPort.Length; i++) { comboBox2.Items.Add(ArryPort[i]); } }
2.打开/关闭串口。双击启用端口按钮,加入以下代码。 private void button1_Click(object sender, EventArgs e) { if (button1.Text == "启用端口") { try { serialPort1.PortName = comboBox2.Text; serialPort1.Open(); comboBox2.Enabled = false; button2.Enabled = false; button1.Text = "关闭端口"; } catch { System.Media.SystemSounds.Beep.Play(); MessageBox.Show("端口打开失败", "错误"); } } else { try { serialPort1.Close(); button2.Enabled = true; comboBox2.Enabled = true; button1.Text = "启用端口"; } catch { System.Media.SystemSounds.Beep.Play(); MessageBox.Show("关闭串口失败", "错误"); } } }
3.修改串口波特率。双击串口波特率对应的CommboBox,加入以下代码。 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { serialPort1.BaudRate = Convert.ToInt32(comboBox1.Text); }
4.在Form1_Load中创建串口接收线程,并且初始化串口波特率,串口的其他参数配置使用默认即可。串口接收也可以使用数据接收事假,类似于STM32的串口接收中断。下面的代码是创建串口接收线程,以线程的方式接收串口数据。 private void Form1_Load(object sender, EventArgs e) { serialPort1.BaudRate = 115200; comboBox1.Text = "115200"; Thread ReadSerialPort = new Thread(new ParameterizedThreadStart(SerialPortReadThread)); ReadSerialPort.IsBackground = true; ReadSerialPort.Start(); }
如果使用事件的方式接收数据,按一下步骤操作即可:
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习路线、面经、项目都比较新也比较全面!某鱼上买估计至少要好几十。
点击这里找小助理0元领取:嵌入式物联网学习资料(头条)
5.打开.bin文件。双击文件按钮,加入以下代码: string BinText; OpenFileDialog MyFileDialog; private void button7_Click(object sender, EventArgs e) { BinText = ""; MyFileDialog = new OpenFileDialog(); MyFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); MyFileDialog.Filter = @"|*.bin"; if (MyFileDialog.ShowDialog() == DialogResult.OK) { string filePath = MyFileDialog.FileName; FileStream Myfile = new FileStream(filePath,FileMode.Open,FileAccess.Read); BinaryReader binreader = new BinaryReader(Myfile); MyPublicPara.FileLength = (int)Myfile.Length;//获取bin文件长度 MyPublicPara.Binchar = binreader.ReadBytes((int)Myfile.Length); textBox4.Text = MyFileDialog.SafeFileName; textBox4.Text += " "+Myfile.Length+"Byter r "; } }
到这一步,我们已经可以打开串口、打开指定的bin文件了,接下来就是通过串口把bin文件发出去。
6.发送bin文件。
点击开始更新按钮,加入以下代码: public delegate void ClearProgressValue(); Progress progressForm; List
湖北又添8个出游好去处假期出游又添好去处!湖北省文化和旅游厅近日公布了一批新增的省级旅游度假区8家上榜省文化和旅游厅网站信息显示,经相关市(州)申报推荐,该厅组织认定和公示,新一批省级旅游度假区名单出炉
天下法源南台寺一座衡山上的千年古寺落日寒蝉鸣,独归林下寺。柴扉夜未掩,片月随行履。惟闻犬吠声,又入青萝去。宋守诠题梵天寺地理位置素有天下法源之称的南台寺坐落在衡山瑞应峰下。寺庙历史南台寺始建于梁天监年间(公元502
山上赏雪山中滑雪天柱山迎来冰雪季大皖新闻讯2023年元旦夜间,天柱山迎来新年首场降雪。冬天的天柱山是一个冰雪王国。山上赏雪,山中滑雪,游客可体验别样乐趣。雪后的天柱山山脊上银装素裹,被雪花包裹着的松针犹如海里的珊
老牌美食胜地聚人气水塔街洋溢浓浓烟火气央视网消息在湖北武汉老牌美食胜地水塔街,夜晚来临,街上人来人往,洋溢着浓浓的烟火气。油锅热浪,香味扑鼻街头巷尾,人头攒动。在武汉水塔街,工作日的晚上依旧人流如织。卖烤鸡腿的徐先生从
亦窗亦景!探寻上海醉白池公园里的花窗之美!江南古典园林巧妙遵循了虚实二字为造园之要谛,以墙为实,以窗为虚,虚实结合,即丰富建筑空间层次,增加建筑立面变化,又使得内外空间互相穿插渗透,从而扩大景深效果,景致无限。今天,跟着小
(十二终)大好河山张家口一路向北(12终)国道331边疆行因返回路程中途径吉林,要穿过去赶到辽宁路程太长,我们17日就再次返回加达格奇休整半天,18日一路直奔,赶到1200公里外的辽宁阜新。力哥要看冬奥会
农村兴起产业升级生态农业助推乡村振兴中国经济周刊记者张宇轩全面推进乡村振兴的过程中,对传统农业进行产业形态升级改造,打造具有当地特色的生态农业融合文化休旅等综合产业,形成具备多样性的完整生态产业链,已成为不少地区农村
半个朋友圈都在三亚?阳康后的首次出沪旅行,他们最大的感受是顺畅感觉半个朋友圈都在三亚,虽然网上流传的这句话有夸张的成分,但记者翻看这几日的朋友圈,的确从不少阳康们的晒图中,云赏了三亚湛蓝的大海沙滩与椰树金黄的落日绚烂的烟花。他们中有阳康后的新
2022年山东省旅游民宿设计评选入选名单公布泰安市三家旅游民宿入选近日,山东省文化和旅游厅对外公布了2022年山东省旅游民宿设计评选入选名单。经初步筛选专家投票网站公示等环节,共评选出十佳建筑设计民宿十佳产品开发民宿十佳运营管理民宿三个品类。其中
这个元旦旅游迅速回暖重庆热度位居前列有人开始制定春节计划12月31日晚10点,人们冒雨在解放碑下等待新年的钟声。华龙网新重庆客户端讯(首席记者佘振芳董进)这个元旦,是疫情防控政策全面放开后的首个小长假。多个旅游平台显示,中长线游需求迅速
用诚心收获真心巅峰湖南六大名山登山赛八面山站活动侧记文团结报全媒体记者田浩2022年12月24日,此起彼伏的加油声打破了龙山县里耶镇八面山早晨的宁静,巅峰湖南2022六大名山登山赛(八面山站)暨最美八面山环山越野赛开赛。骑行在最美云