C#代码 串口通信晋中A2板,控制直流电机

news2024/10/11 23:51:49

1,在电脑中给晋中板中下载编译好的程序。

        0x39 :开启电机的标识

        代码:

/**********************************************************************************
****
实验名称:串口通信实验
接线说明:
实验现象:下载程序后,当串口助手发送数据给单片机,单片机原封不动转发给串口助手显示
注意事项:使用黄色跳线帽将 CH340 旁的 P5 端子的 UTX 和 P30 短接,URX 和 P31 短接,出厂默
认已短接好
***********************************************************************************
****/
#include "reg52.h"
typedef unsigned int u16;//对系统默认数据类型进行重定义
typedef unsigned char u8;
u8 u16_data;

//定义直流电机控制管脚
sbit DC_Motor=P1^0;

/*******************************************************************************
* 函 数 名 : uart_init
* 函数功能 : 串口通信中断配置函数,通过设置 TH 和 TL 即可确定定时时间
* 输 入 : baud:波特率对应的 TH、TL 装载值
* 输 出 : 无
*******************************************************************************/
void uart_init(u8 baud)
{
	TMOD|=0X20; //设置计数器工作方式 2
	SCON=0X50; //设置为工作方式 1
	PCON=0X80; //波特率加倍
	TH1=baud; //计数器初始值设置
	TL1=baud;
	ES=1; //打开接收中断
	EA=1; //打开总中断
	TR1=1; //打开计数器
}
/*******************************************************************************

* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/

void main()
{
 	//u16_data=0;
	DC_Motor=0;//关闭电机
	uart_init(0XFA);//波特率为 9600
	while(1)
	{
	
	}
}
void uart() interrupt 4 //串口通信中断函数
{
	u8 rec_data;
	RI = 0; //清除接收中断标志位
	rec_data=SBUF; //存储接收到的数据
	if(rec_data==0x39)
	{
	   DC_Motor=1;//开启电机
	}
	else
	{
		DC_Motor=0;//关闭电机
	}
	SBUF=rec_data; //将接收到的数据放入到发送寄存器
	while(!TI); //等待发送数据完成
	TI=0; //清除发送完成标志位
}

2,通过WPF界面控制电机开启。

      

     C# 代码:

    2.1 wpf布局完成事件中开启串口连接

bool is_run = false;//电机开启标识
SerialPort com = new SerialPort();
private void ErrorPage_Loaded(object sender, RoutedEventArgs e)
{
    com.BaudRate = 9600;//波特率
    com.PortName = "COM6";//端口号
    com.DataBits = 8;//字节长度
    com.Open();//打开端口连接
}

     2.2 开启电机 按钮点击事件

        

 private void Button_Click_3(object sender, RoutedEventArgs e)
 {
     Byte[] data = new Byte[4];
     if (!is_run)
     {
         data[0] = 0x39;
         is_run = true;
     }
     else
     {
         data[0] = 0;
         is_run = false;
     }
     com.Write(data, 0, 1);
     //com.Close();
 }

该文为原创文章,转载请注明原文出处

Author:靓仔建 w: gaolian1025

(希望能帮助到各位,大家的支持是我创作最大动力!现在待业中。(专注.net C# 6年))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2206265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NRF24L01原子HAl库学习

IRQ产生中断有低电平,在TxFIFI发送完收到ACk后产生, 在RxFIFO收到数据后也产生 达到最大重发次数也产生 工作时序,SCK空闲状态为0,CPOL0,第一个时钟沿采集数据CPHA0,SPI工作模式0 另外SPI高位先出,低字节先出 30个寄…

2024年秋季学期期中考试成绩查询系统-老师制作工具

随着2024年的日历逐渐翻至末尾,我们迎来了本年度的最后一次期中考试。对于我们这些教育工作者而言,这段时间无疑是充满挑战与收获的。今天,我要向大家推荐一个创新的工具——“易查分”,它将彻底革新我们传统的成绩发布流程。通过…

【瑞萨RA8D1 CPK开发板】lcd显示

1.8寸lcd使用gpio模拟spi驱动 由于板子引出的接口限制,故使用gpio模拟spi驱动中景园的1.8寸lcd 1.77寸液晶屏 1.8寸TFT LCD SPI TFT彩屏st7735驱动128x160高清屏-淘宝网 (taobao.com) 使用RASC 的gpio配置 根据厂家提供的驱动文件移植 #define LCD_SCLK_Clr() g…

【MySQL】CRUD增删改查操作

文章目录 CRUD简介一、Creat 新增1.单行数据全列插入2.单行数据全指定列插入3.多行数据指定列插入 二、Retrieve 检索1.全列查询 --练习阶段最简单的查询:(在生产环境最好不要用!!)2.指定列查询3.结果去重查询4.where条…

Tomcat部署java项目,反馈漏洞CVE-2005-4900: TLS SHA-1 安全漏洞(中危) *

根据项目反馈漏洞处理,修复部署SSL证书时反馈TLS1.2版本漏洞: 漏洞描述如下: 漏洞类型:密码学问题 漏洞描述: TLS (全称 Transport Layer Security,安全传输层 协议)是一套用于在两…

Qt 数据库,人脸识别

数据库 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QMainWindow> #include<QSqlDatabase> QT_BEGIN_NAMESPACE namespace Ui { class widget; } QT_END_NAMESPACEclass widget : public QMainWindow {Q_OBJECTpublic:widget(QWidget *parent nullptr);…

HCIP-HarmonyOS Application Developer 习题(九)

(多选) 1、HarmonyOS多窗口交互能力提供了以下哪几种交互方式&#xff1f; A. 全局消息通知 B.平行视界 C.悬浮窗 D.分屏 答案&#xff1a;BCD 分析&#xff1a;系统提供了悬浮窗、分屏、平行视界三种多窗口交互&#xff0c;为用户在大屏幕设备上的多任务并行、便捷的临时任务…

项目 多人对话

项目 目标 多人对话仿真平台 技术点 socketIO异常多线程集合面向对象字符串GUI&#xff08;client&#xff09;… 项目开发方式 迭代开发-敏捷开发 建立模型 C/S 客户端/服务器模型(console) 服务器 package com.ffyc.tcp.one;import java.io.IOException; import java.i…

【大模型】RMS Normalization原理及实现

1.RMS Normalization的原理 说RMS Normalization之前&#xff0c;先讲Layer Normalization 和 Batch Normalization。 BN和LN是两种常见的归一化方法。它们的目的是帮助模型训练更稳定、收敛更快。BN是在Batch维度上进行归一化&#xff0c;即对同一batch中每个特征维度的值进行…

操作系统的了解及安装

一、linux系统认识 linux是指操作系统的内核&#xff0c;ubuntu是指基于这种内核的操作系统&#xff0c;Ubuntu属于Linux的一个发行版本&#xff0c;有简易的用户界面&#xff0c;完善的包管理系统&#xff0c;Ubuntu还对大多数硬件有着良好的兼容性&#xff0c;包含最新的图形…

一文区分SSTI 和 CSTI

前言 有时&#xff0c;SSTI&#xff08;服务器端模板注入&#xff09;和 CSTI&#xff08;客户端模板注入&#xff09;可能会由于它们相似的负载语法而混淆。这种混乱可能会导致渗透测试人员浪费时间尝试实现反向 shell&#xff0c;即使payload仅限于客户端。 定义 &#x1d…

10.11 QT数据库实现学生信息的增、删、改、查

.pro文件 QT core gui sql .h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QSqlDatabase> //数据库管理类 #include <QSqlQuery> //数据库查寻类 #include <QSqlRecord> //记录类 #include <QMessage…

从数据到洞察:ChatGPT如何革新Python数据分析流程

导读&#xff1a;通过ChatGPT与Python的结合&#xff0c;数据分析流程得到了极大的优化和提升&#xff0c;从数据获取、清洗、代码生成到智能分析和可视化展示&#xff0c;每一步都变得更加高效和智能化。这不仅提高了分析的准确性和效率&#xff0c;还降低了技术门槛&#xff…

网络编程(18)——使用asio协程实现并发服务器

十八、day18 到目前为止&#xff0c;我们以及学习了单线程同步/异步服务器、多线程IOServicePool和多线程IOThreadPool模型&#xff0c;今天学习如何通过asio协程实现并发服务器。 并发服务器有以下几种好处&#xff1a; 协程比线程更轻量&#xff0c;创建和销毁协程的开销较…

【python】之socket编程(附带无偿源码)

本章内容 1、socket 2、IO多路复用 3、socketserver Socket socket起源于Unix&#xff0c;而Unix/Linux基本哲学之一就是“一切皆文件”&#xff0c;对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现&#xff0c;socket即是一种特殊的文件&…

【路径规划】自主机器人的路径规划和导航

摘要 本文讨论了如何利用路径规划算法对自主机器人进行路径规划和导航。自主机器人在环境中的路径规划是通过参考路径与机器人的当前位置进行比对&#xff0c;采用纯追踪算法&#xff08;Pure Pursuit&#xff09;进行路径跟踪&#xff0c;以确保机器人沿预定路线行驶。本文通…

黑马程序员C++核心编程学习笔记

黑马程序员C核心编程学习笔记 一、内存 1.1 内存四区 C程序在执行时&#xff0c;将内存大致分为4个区域&#xff1a;代码区&#xff0c;全局区&#xff0c;栈区&#xff0c;堆区 代码区&#xff1a;存放函数体的的二进制代码&#xff0c;操作系统管理。 &#x1f535;特点&a…

从数据管理到功能优化:Vue+TS 项目实用技巧分享

引言 在项目开发过程中&#xff0c;优化用户界面和完善数据处理逻辑是提升用户体验的重要环节。本篇文章将带你一步步实现从修改项目图标、添加数据、优化日期显示&#xff0c;到新增自定义字段、调整按钮样式以及自定义按钮跳转等功能。这些操作不仅提升了项目的可视化效果&am…

双十一适合买什么?2024双十一值得入手好物推荐

即将来临的2024年双十一&#xff0c;有哪些超值宝贝会令人忍不住疯狂下单呢&#xff1f;双十一购物狂欢节&#xff0c;这个一年一度的盛大庆典&#xff0c;向来使我们这些热衷于购物的消费者们激动万分。那么&#xff0c;在今年的双十一&#xff0c;究竟有哪些商品能够成功吸引…

利用FnOS搭建虚拟云桌面,并搭建前端开发环境(二)

利用FnOS搭建虚拟云桌面&#xff0c;并搭建前端开发环境 二 一、docker镜像二、环境配置三、核心环境配置流程文档 利用FnOS搭建虚拟云桌面&#xff0c;并搭建前端开发环境&#xff08;一&#xff09; 上一章安装了飞牛FnOS系统&#xff0c;界面如下&#xff0c;这一张配置前端…