简介:STM32与上位机之间用通信协议(自己定义)进行串口通信。
怎么判断上位机发过来的指令是正确的,而不是一串乱码?怎么从正确的指令中提取出想要的命令代号,从而实现想要的功能?方法:读取上位机发来的命令,逐位判断命令的包头和包尾,如果能对应上,则这串指令是正确的,然后从指令中提取想要的数据和命令等。
举个栗子:通信协议是自己定义的,不是modbus协议等。

如F05A 15 15251609021214 FF A5F0(都是16进制),F05A是包头,A5F0是包尾,黑色15是命令代号,中间蓝色是我想发的数据,橙色FF是校验位。
只要包头包尾校验正确,基本这串指令不会有问题。
2023/9/1 1:17:50 7.32MB STM32L0 串口中断接收 HAL库
1
本项目使用Java的swing轻量级框架进行开发,实现了体系结构指令动态调度算法Tomasulo。
模拟器能够选择的配置方式有汇编指令类型,条数,源地址,目的地址,可以单步执行,也可快速5步前进执行。
文件入口为Tomasulo.java。
2023/8/31 3:16:28 9KB 体系结构 Tomasulo 算法模拟器
1
1、可以学习遥控器指令2、根据温度自动控制空调开关3、红外遥控
2023/8/28 8:01:12 958KB stm32f103 空调 红外遥控 红外学习
1
Modbus采用主从式通信,日常使用较多的是ModbusRTU和ModbusTCP/IP两种协议。
最常用的Modbus通信调试工具就是ModScan32和ModSim32。
ModScan32用来模拟主设备。
它可以发送指令到从机设备(使用Modbus协议的智能仪表终端设备)中,从机响应之后,就可以在界面上返回相应寄存器的数据。
ModSim32用来模拟从设备。
它可以模拟采用ModBus协议的智能终端。
主要用在HMI组态开发中,通过ModSim32改变寄存器状态的值,模拟智能终端的状态变化,来观察HMI画面的变化。
使得画面的变量配置正确。
2023/8/27 22:45:53 2.03MB ModScan32 ModSim32 破解版
1
目录诸论第1章TMS320C54x的结构原理1.1TMS320系列DSP芯片概述101.1.1TMS320系列DSP的分类及应用101.1.2TMS320C5000DSP平台111.2TMS320C54xDSP131.2.1TMS320C54x的主要特性131.2.2TMS320C54x的组成框图161.3总线结构181.4存储器191.4.1存储器空间分配201.4.2程序存储器231.4.3数据存储器241.5中央处理单元271.5.1算术逻辑运算单元281.5.2累加器A和B291.5.3桶形移位器311.5.4乘法器/加法器单元321.5.5比较、选择和存储单元331.5.6指数编码器341.5.7CPU状态和控制寄存器341.6数据寻址方式391.6.1立即寻址411.6.2绝对寻址411.6.3累加器寻址411.6.4直接寻址421.6.5间接寻址431.6.6存储器映像寄存器寻址461.6.7堆栈寻址471.7程序存储器地址生成方式481.7.1程序计数器491.7.2分支转移491.7.3调用与返回501.7.4条件操作511.7.5重复操作531.7.6复位操作541.7.7中断551.7.8省电方式591.8流水线601.8.1流水线操作601.8.2延迟分支转移621.8.3条件执行641.8.4双寻址存储器与流水线651.8.5单寻址存储器与流水线671.8.6流水线冲突和插入等待周期671.9在片外围电路711.9.1并行I/O口及通用I/O引脚711.9.2定时器721.9.3时钟发生器741.9.4主机接口781.10串行口831.10.1串行口概述831.10.2标准串行口841.11DMA控制器971.11.1DMA控制器的基本特性971.11.2子地址寻址方式971.11.3DMA通道优先级和使能控制寄存器1001.11.4DMA通道现场寄存器1021.11.5DMA编程举例1081.12外部总线1131.12.1外部总线接口1131.12.2外部总线操作的优先级别1141.12.3等待状态发生器1151.12.4分区切换逻辑1171.12.5外部总线接口定时图1181.12.6复位和IDLE3省电工作方式1201.13TMS320C54x引脚信号说明122第2章指令系统2.1指令的表示方法1302.1.1指令系统中的符号和略语1302.1.2指令系统中的记号和运算符1332.2指令系统1352.2.1指令系统概述1352.2.2指令系统分类135第3章汇编语言程序开发工具3.1TMS320C54x软件开发过程1373.2汇编语言程序的编写方法1393.3汇编语言程序的编辑、汇编和链接过程1413.4COFF的一般概念1433.4.1COFF文件中的段1433.4.2汇编器对段的处理1443.4.3链接器对段的处理1463.4.4COFF文件中的符号1483.5汇编1493.5.1运行汇编程序1493.5.2列表文件1513.5.3汇编命令1543.5.4宏定义和宏调用1543.6链接1563.6.1运行链接程序1563.6.2链接器选项1573.6.3链接器命令文件1583.6.4多个文件的链接164第4章Simulator和CCS集成开发工具的使用方法4.1Simulator的使用方法1694.1.1软件仿真器概述1694.1.2仿真命令1714.1.3仿真器初始化命令文件1744.1.4仿真外部中断1764.2什么是CCS1774.3如何安装和设置CCS1784.3.1CCS对计算机系统的配置要求1784.3.2CCS的安装与设置1784.4CCS窗口介绍1804.4.1CCS窗口示例1804.4.2CCS的菜单栏和快捷菜单1804.4.3CCS的常用工具栏1814.5如何建立工程文件1824.5.1工程文件的建立、打开和关闭1834.5.2在工程文件中添加或删除文件1834.5.3编辑源文件1834.5.4工程的构建1844.6如何调试程序1854.6.1加载可执行文件1854.6.2程序的运行和复位1864.6.3断点设置1874.6.4内存、寄存器和变量操作1884.7如何与外部文件交换数据1914.7
2023/8/25 15:41:47 3.6MB DSP结构 原理 TMS320C54X
1
可以在intel系列高于8086版本上运行模拟器,方便对汇编语言和指令系统的学习,调试
2023/8/25 13:11:09 2.85MB 汇编语言IDE8086处理器
1
一步一步学PLC编程(西门子STEP7),介绍了(西门子STEP7)的原理,主要指令,及开发。
2023/8/24 21:56:21 41.74MB PLC编程
1
包含11条简单的指令,而且每一步的操作都有截图。

2023/8/24 14:52:41 9.32MB 指令系统
1
纯人工翻译中文版本,STM32CubeMX用户手册中文版,STM32CubeMX用户手册中文版UM1718-翻译版.菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。
这个工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。
说到freeRTOS,这里就多说两句。
全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。
不过我们可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。
关闭了时间片调度,只有发生vTaskDelay的时候才会上下文切换。
只要代码合理访问全局变量可以不加保护的。
因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。
源码较少,这里就不过多介绍。
关闭时间片不是网上说的configUSE_TIME_SLICING这个宏定义,老鸟发现这个宏压根没用哈,嘿嘿。
阅读源码可以找到相关宏配置。
不过不建议关闭,时间片调度也可以让一个任务在执行一定时间后切换到其他就绪任务去执行。
如果有freeRTOS相关问题,可以留言给我。
废话说多了点哈,继续我们的STM32CubeMX。
下面我们来讲讲这个工具的作用,讲完后,可以自己下载一个试试,挺简单不多介绍。
到官网下载STM32CubeMX,并安装。
1:芯片选型打开STM32CubeMX,我们点击newproject,我们就可以进行芯片选型,如果你下载了打开了这个工具,是不是很惊讶,stm32的所有产品型号都在里面,而且左下提供了资源勾选,比如你要以太网支持,勾选以太网选项,所有的支持以太网的stm32芯片才会被显示,旁边还有个max的栏目指示了芯片最多支持该功能的个数。
空白的一般默认只有一个。
下图是我勾选以太网的截图。
上图不仅提供了芯片,还提供了价格,是否在售,封装,存储,频率等一些列信息。
除了cpu资源可以选型外,上面还提供了脚多少,存储大小等非常灵活的选型方式。
我们选择其中一个的单片机后。
右上部分给我们提供了完美的支持。
第一个选项提供了改cpu的特性,我们可以大概的了解选中的cpu资源。
第二个选项提供该cpu框图,截图图片太大,这里就不截图了。
第三个选项提供了cpu文档,这个文档非常多也非常全面,基本不用在网上东找西找了,主要给硬件工程师用。
第四个选项提供了cpu的相关设计资源,软件编程文档,给软件工程师用,非常全面,包括网上很少用到的文档资料,比如系统移植相关的底层资料(堆栈,指令,汇编)。
第五个选项提供了芯片购买途径,这个每个人自己选择吧。
第六个选项开始工程,芯片选好了,就可以开始工程。
2:设定芯片。
芯片选好后,可以开始设定芯片。
这就是软件工程师的好帮手呀。
比如我要以太网功能,勾选上以太网即可,他就会自动分配出芯片对应的以太网接口。
如下图:上面我选了标准的MII接口。
很多人可能就不理解,你勾了个以太网,咋报错了。
老鸟告诉你为啥变红了,stm32有个复杂的功能就是io口复用,勾选mii后分配的io口和spi2以及iis口重合了,所以这个工具非常智能的提示了出来,非常神奇吧。
告诉你他们不能使用了。
还有些变黄了,说明他们可以选择性使用,真是太方便了,省去了查资料慢慢找io的痛苦。
比如我们还要给它个外部时钟。
我们勾选时钟即可,响应的时钟脚就会分配出来。
如果要将某个脚设置成输入输出那就更简单了,鼠标点选对应的io口选择对应功能即可,比如我单击PA6,它的所有功能可以轻松选择:软件使用比较简单,不过多解释,一看就明白,设置完芯片功能后,我们就设定系统各项功能时钟。
选择时钟设置页面(clockconfiguration)时钟轻松设定,如下图,简单明了,不过多解释了:时钟配置完成后,可以切换到configuration选项对功能进一步设定,里面参数都是常用的功能,设置较为简单。
就不多举例了,比如网络功能里面设置mac地址等。
3:生产初始化代码经过上面的图形化设定,我们可以直接生产初始化代码。
省去我们查阅资料慢慢配置的的环节,时间更多的利用在应用层设计。
点击project下面的生成代码选项。
输入工程名(根据你项目需要起名),这里我就随便输入一个名字。
设定好相关参数。
点击ok即可。
顺便说下,这个工具是配带教程的,我这里只是告诉大家有这样个工具可以加速开发,具体设置参考官方教程。
生成后打开文件夹内容如下:上图的inc和src文件夹里面是生成的主要代码,其他几个文件夹里面的东西,大家可以根据自己需要选择。
src文件夹文件如下:打开熟悉的ma
2023/8/19 21:31:32 11.41MB stm32 仿真
1
一、课程设计任务完成在如下两个题目中任选一个题目。
1、网络数据计算(1)在Linux系统下,使用TCP协议套接字编程;
(2)服务器应具有处理多个客户端连接并计算的能力;
(3)过程描述客户端:连接服务器后,从键盘输入一连串的整数及字符串,并将这些整数及字符串发送到服务器,并发送结束指令(自定义结束指令),等待服务器返回计算结果,显示结果后退出;
服务器:为每个客户连接创建一个进程,处理客户数据,显示每次收到一个整数或字符串,收到结束指令后将整数累加,并将累加结果返回客户端,并关闭连接,结束进程。
2、linux系统下实现聊天室(1)在Linux系统下,使用TCP协议套接字编程;
(2)服务器应具有处理多个客户端连接能力(设定最大连接数,如5个);
(3)具有群发和私聊的能力;
(4)过程描述客户端:连接服务器后,应能接收服务器发来信息并处理的能力,当收到聊天信息时,显示群发或私聊、信息发送客户及发送的信息,当收到客户加入或退出时,显示客户登录或退出,并更新客户列表;
每次可选择群发或私聊,群发时将键盘输入信息发送给服务器,私聊时,选择私聊客户并将输入信息发送给服务器。
选择退出时,结束进程或线程,关闭程序。
服务器:为每个客户连接创建一个进程或线程,处理客户信息,当有新客户加入或有客户退出时,将客户加入或退出信息发送给每个客户端;
当收到某客户的群发信息时,将信息转发给每个客户,当收到客户私聊时将信息转发给私聊客户;
客户退出时关闭相应的进程或线程。
二、课程设计时间一周三、课程设计说明书每名学生完成课程设计任务的同时,撰写课程设计说明书,见附件,可打印也可手写,但不得抄袭。
四、课程设计成绩评定标准课程设计根据学生在课程设计过程的出勤、学习态度及课程设计任务完成情况综合评定课程设计成绩,具体分值所占比例为:(1)出勤、上机态度占总成绩20%,若发现做与课程设计无关事情,每次扣5分;
(2)课程设计说明书占总成绩40%,若发现有抄袭行为,课程设计成绩为不及格;
(3)课程设计完成效果及答辩占总成绩40%。
按照优、良、中、及格和不及格五级给予最终成绩。
2023/8/19 19:15:55 62KB linux
1
共 747 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡