自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (24)
  • 收藏
  • 关注

原创 【STM32F103微控制器上进行CAN总线回环测试】

CAN总线(Controller Area Network)是一种常用的串行通信协议,最初由德国公司Bosch开发,用于汽车电子系统中的通信和控制。它在汽车行业得到了广泛的应用,后来也在其他领域如工业控制、航空航天和医疗设备等方面得到了采用。CAN总线的设计目标是满足汽车电子系统中的高可靠性和实时性要求。它采用差分信号传输和多主机的通信结构,具有抗干扰、抗噪声和高带宽利用率的特点。CAN总线支持多个节点之间的数据交换,允许节点实时地发送和接收消息。它还具有消息优先级机制,可以保证关键数据的及时传输。

2024-03-16 13:22:51 1894

原创 STM32按键状态机短按、长按和连击操作

按键的不同状态对应于不同的按键操作,通过状态转换和计数器的判断,可以准确地识别和处理短按、长按和连击操作。在空闲状态(BUTTON_STATE_IDLE)下,检测到按键按下后,将按钮按下状态设置为1,重置释放状态和计数器,并将状态转换为按下状态(BUTTON_STATE_PRESSED)。当使用状态机来处理按键操作时,我们将按键的不同状态抽象为状态机中的各个状态,并根据按键的状态转换进行相应的处理。在函数的最后,我们检查定时器溢出标志,并根据当前的按键状态和按键的按下和释放状态进行相应的处理。

2024-03-16 13:01:05 1687

原创 【BACnet ip网络参数设置和读取】

3这个结构体定义了一个名为bacnet_ipv4_port的数据结构,用于表示BACnet IP设备的网络配置信息。下面是对结构体成员的解释:IP_Address:一个长度为4的无符号整数数组,表示设备的IPv4地址。每个元素表示一个字节,共计4个字节。例如,IP地址为192.168.0.1,则数组的值为{192, 168, 0, 1}。IP_Subnet_Prefix:一个长度为4的无符号整数数组,表示设备的子网掩码。用于确定设备所在的子网范围。与IP_Address类似,每个元素表示一个字节。

2024-03-15 13:39:28 1667

原创 BACnet device对象详解以及协议栈相关代码

BACnet(Building Automation and Control Networks)是一种用于建筑自动化和控制系统的通信协议。BACnet设备对象是BACnet协议中的一个重要概念,用于表示建筑自动化系统中的设备。BACnet设备对象(Device Object)是BACnet网络中的主要实体,代表了一个物理设备或网络上的虚拟设备。每个BACnet设备对象都有一个唯一的标识符,称为设备实例号(Device Instance)。

2024-03-13 13:49:46 1715 1

原创 单片机c语言编程规范

代码中的initialize函数用于初始化单片机的硬件配置,包括设置LED引脚为输出和启用按钮引脚的上拉电阻。main函数是程序的入口,它在一个无限循环中检测按钮是否被按下,如果按钮被按下,则调用toggleLED函数切换LED的状态,并通过延迟函数__delay_cycles延迟一段时间。请注意,这只是一个简单的范例,实际的代码规范可能会根据项目的要求和团队的约定而有所不同。使用一致的缩进风格,例如使用制表符或空格进行缩进,以提高代码的可读性。使用有意义的变量、函数和宏的名称,避免使用缩写和简写。

2024-03-12 13:49:09 599

原创 【ARM linux mqtt协议连接服务器】

如果您需要获取MQTTClient库的源代码或更详细的API函数说明,请参考MQTTClient库的官方网站或开发者社区。此示例代码演示了一个简单的发布者(Publisher)应用程序,它连接到本地的MQTT服务器,等待用户输入要发布的消息,并将消息发布到指定的话题。在给出的代码中,包含了MQTTClient库的头文件MQTTClient.h,并且使用了该库提供的函数来创建、连接和操作MQTT客户端。MQTTClient库的具体实现代码通常包含在一个或多个源文件中,并且通常以静态库或动态库的形式提供。

2024-03-12 13:37:17 464 2

原创 【基于arm linux c语言编程MODBUS rs485 RTU模式】

创建modbus_t结构体对象并使用modbus_new_rtu()函数初始化,指定串口设备文件和其他通信参数,例如波特率和从机地址。读取Modbus数据:使用modbus_read_registers()等函数来读取Modbus设备的数据。关闭Modbus连接和串口设备:使用modbus_close()函数关闭Modbus连接,使用close()函数关闭串口设备。根据Modbus协议的规定,解析数据的格式和含义。建立Modbus连接:使用modbus_connect()函数连接到Modbus设备。

2024-03-11 11:16:43 1051

原创 cJSON C语言库解析和生成JSON数据

cJSON是一个轻量级的C语言库,用于解析和生成JSON数据。它提供了简洁而高效的API,使得在C语言中处理JSON数据变得简单和方便。以下是一些cJSON库的主要特点和用法:解析JSON数据:使用cJSON_Parse函数可以将JSON字符串解析为cJSON对象。该函数会返回一个指向根节点的指针。如果解析失败,返回NULL。生成JSON数据:使用cJSON_CreateObject和cJSON_CreateArray等函数可以创建cJSON对象。

2024-03-11 09:23:25 1467

原创 交流24v供电和直流24v供电的优势和劣势以及设计成本的差异

在一个建筑物的自动化控制系统中,存在多个需要供电的设备,如传感器、执行器、控制器等。如果使用交流24V供电,可以利用建筑物内的交流电源系统,通过电源线路和变压器进行电压转换和供电。这样可以方便地从电网中获取电能,并在建筑物范围内保持电压稳定性。但是,由于一些设备需要直流供电,需要添加额外的电源转换器来将交流电转换为直流电。

2024-03-10 16:31:25 1853

原创 蓝牙和wifi各有什么优劣势

大规模连接:Wi-Fi网络可以支持多个设备同时连接,适用于大规模设备之间的通信,如家庭、办公室等场景。较高的传输速率:Wi-Fi通信速率较高,适用于大规模数据传输和高速传输,如视频流、大文件传输等。较高的功耗:Wi-Fi通信相对于蓝牙通信来说功耗较高,适用于功耗要求不那么严格的设备。远距离通信:Wi-Fi通信距离较蓝牙更远,适用于在较大范围内进行设备间的无线通信。低功耗:蓝牙通信通常使用较低的功率,适用于低功耗设备,如耳机、智能手表等。连接限制:蓝牙通信通常限制连接的设备数量,不适合大规模设备之间的通信。

2024-03-10 16:19:26 1627

原创 bacnet cov机制详细介绍

BACnet(Building Automation and Control Networks)的COV(Change of Value)机制是一种用于监测和传输对象的变化信息的机制。COV机制允许BACnet设备在对象的值发生变化时主动发送通知,以便其他设备能够实时获取最新的数据。COV机制涉及以下几个重要的对象:COV源(COV Source):COV源是一个BACnet对象,它被监控以检测其值的变化。当COV源的值发生变化时,它将触发COV通知。

2024-03-10 14:40:28 996

原创 【STM32F103 BACnet MSTP通信RS485驱动代码】

在实际项目应用中,如果想利用低成本的mcu来实现BACnet IO模块,可以采用STM32 RS485队列FIFO实现

2024-01-10 16:08:57 892 1

原创 STM32 FOC算法调节电机

FOC(Field-Oriented Control,磁场定向控制)是一种先进的电机控制算法,可以实现高效、精确的电机控制

2024-01-06 15:59:50 901

原创 RN8209 RN8302 spi驱动和校表程序STM32

RN8209是一款单相电能表专用的集成电路芯片。它是基于CMOS工艺的智能电能计量专用芯片,具有高精度、低功耗和强抗干扰能力等特点。RN8209集成了电流、电压、功率、功率因数、频率等计量功能,支持RS485通信接口和SPI接口,可以与微处理器或微控制器进行通信,实现电能计量和数据传输。RN8209芯片具有以下主要特性:电能计量功能:支持电流、电压、功率、功率因数、频率等计量功能,可高精度地测量电能数据。通信接口:支持RS485通信接口和SPI接口,可方便地与上位机或其他设备进行数据通信和控制。

2024-01-06 15:06:57 2086

原创 STM32的串口FIFO发送和接收使用FreeRTOS实时操作系统

以上是一个带有串口接收中断的串口FIFO发送和接收程序的示例代码。请注意,该示例中的错误处理部分需要根据具体的应用场景进行适当的修改。在USART1_IRQHandler函数中,我们处理串口接收中断。当接收到数据时,我们将数据发送到接收队列中。在UART_SendByte函数中,我们将要发送的数据发送到发送队列中。在UART_ReceiveByte函数中,我们从接收队列中接收数据。接下来,我们创建了串口发送任务(vUartTxTask)和串口接收任务(vUartRxTask)。

2023-12-29 08:26:14 2130 2

原创 stm32采用队列方式接收和发送RS485串口数据

rs485_init函数中的rs485_baud_rate_set函数用于配置USART2的波特率。可以使用rs485_baud_rate_set函数来设置所需的波特率。需要注意的是,调用rs485_bytes_send函数时,确保提供的缓冲区大小足够存储要发送的数据,并且nbytes参数的值与要发送的数据字节数相匹配,以避免访问越界和发送不完整的数据。在调用rs485_bytes_send函数时,需要将要发送的数据存储在buffer指向的缓冲区中,并将要发送的数据字节数作为nbytes参数传递给函数。

2023-12-28 09:58:50 1755

原创 Bacnet—IP业务逻辑协议Yabe软件

Bacnet有专门配置IP参数的类,设备连接之前,需要配置端口号和ip地址,图示是用yabe的BACnet参数设置功能。Bacnet 有个专门的类可以配置和读取出厂参数信息,软件版本信息,日期,系统时间信息等,可自定义。表示输出电压值,范围 0~1000对应0到10v输出, 只写,名称可设,默认AO X。表示输入电压值,范围 0~10000,对应0到10v,只读。BINARY OUTPUT类表示开关量DO输出,值为0/1,1表示开。BINARY INPUT类表示开关量DI输入,值为0/1,1表示开。

2023-12-26 09:36:23 992

原创 NBIOT BC28驱动程序

if ( ( reply1 == 0 ) && ( reply2 == 0 ) ) //不需要接收数据。// printf(“信号级别:%d\n”, NBIOT_MODULE_INFO.signalCSQ);if(USART1_RX_STA&0X8000)//接收到期待的应答结果。//// printf(“数据上传:\n”);

2023-12-19 08:35:11 218

原创 AT32F403如何扩大SRAM

(0x10000/1024=64kb,0x38000/1024=224kb)(4)打开keil5魔术棒图标 ,将Target中的IRAM1第二个选项从0x10000改为0x3800。(0x10000/1024=64kb,0x38000/1024=224kb)雅特力官方的做法是放在了.S文件里,也就是相当于先执行extend_sram()函数,后执行SystemInit(),其实效果是一样的,以下是雅特力官方的做法。#define EXTEND_SRAM 0xFE //使用224K。

2023-12-19 08:22:26 344

原创 bacnet ddc控制器如何通过485口转发Modbus协议控制modbus执行设备

需要注意的是,BACnet DDC控制器和Modbus执行设备之间的通信协议和寄存器映射需要保持一致,以确保正确的数据传输和控制操作。在BACnet DDC控制器上配置Modbus通信模块:BACnet DDC控制器通常具有可扩展的通信模块,可以通过添加Modbus通信模块来实现与Modbus执行设备的通信。在BACnet DDC控制器上编写逻辑程序:根据需要控制的Modbus执行设备的功能和操作,编写逻辑程序来实现与Modbus执行设备的通信和控制。

2023-08-02 20:20:13 866

原创 如何硬件上判断单路电流过载

需要注意的是,电路的具体设计取决于所使用的电流传感器类型、电路工作电压、比较器的精度和其他因素。要在硬件上判断单路电流过载,需要使用一个合适的电流传感器和一个电路来检测电流值并进行比较。可以将比较器的输出信号连接到一个告警灯或其他设备上,以进行警示或控制其他操作。如果电流超过了设定的最大电流值,比较器将输出一个高电平信号,表示电流过载。设置比较器的阈值,使其能够检测电流是否超过了设定的最大电流值。将电流传感器的输出连接到一个运算放大器中,以放大电流信号。使用电流传感器来测量电路中的电流。

2023-07-29 22:37:58 419

原创 Linux常用的终端工具有哪些?

gnome-terminal:gnome-terminal是GNOME桌面环境下的终端模拟器,支持多标签和透明度等功能。screen:screen也是一个终端复用器,与tmux类似,可以在一个终端窗口中同时运行多个终端会话。terminator:terminator是一个支持多标签的终端模拟器,可以方便地管理多个终端会话。Zsh:Zsh是一个强大的Shell,支持自动补全和语法高亮等功能,是Bash的替代品。tmux:tmux是一个终端复用器,可以在一个终端窗口中同时运行多个终端会话。

2023-06-23 17:20:35 2831

原创 BACnet协议栈Target_object_instanse和Target_object_index有什么区别和联系

使用Target_object_index,需要指定Object_type为二进制输入对象(Object_type = 1),并指定实例号为1(Target_object_index = 1)。联系:Target_object_instanse和Target_object_index都使用实例号来标识BACnet对象,但Target_object_instanse还包括对象类型。Target_object_instanse相当于Target_object_index和Object_type的组合。

2023-06-20 23:57:35 172

原创 ARM Linux 双网口可以同一个网段吗?怎么配置

在这里,我们将第二个网口的IP地址设置为192.168.1.11,子网掩码设置为255.255.255.0,网关设置为192.168.1.1。在ARM Linux 双网口中,可以将两个网口配置在同一个网段中,以实现更高的网络可靠性和带宽。在配置过程中,需要确保两个网口的IP地址、子网掩码和网关地址都设置正确,以便正确地路由数据包。在这里,我们将第一个网口的IP地址设置为192.168.1.10,子网掩码设置为255.255.255.0,网关设置为192.168.1.1。请确保这些地址与您的网络配置相匹配。

2023-06-16 23:53:19 2406

原创 BACnet协议栈apdu_set_confirmed_handler函数中的确认型回调函数是如何传参的

参数表示请求的APDU数据单元,它是一个指向字节数组的指针。APDU是BACnet协议中用于传输数据的数据单元,它包含了请求的具体内容,比如读取属性操作的对象ID、属性ID等信息。参数表示请求的APDU数据单元的长度,它是一个无符号16位整数。通过这个参数,我们可以知道APDU数据单元的长度,从而正确解析请求的内容。该结构体包含了请求的源地址信息,比如发送方的网络号、MAC地址等。的回调函数,用于处理读取属性操作的请求。参数表示请求的源地址,它是一个指向。在函数的实现中,我们首先通过。

2023-06-13 21:37:35 437 1

原创 BACnet多态对象详细介绍和应用场景

BACnet多态对象是一种特殊的BACnet对象,它可以用于表示具有相似属性和行为但不同类型的设备。多态对象能够将不同类型的设备组合成一个通用的对象类型,这样可以在BACnet系统中更方便地管理和控制这些设备。对象类型定义了对象的属性和行为,而对象实例号则用于区分不同的对象实例。总之,多态对象提供了一种灵活且可扩展的方法,用于表示具有相似属性和行为但不同类型的设备。多个设备具有相似的属性和行为,但是它们的类型不同,例如,多个不同型号的传感器可以使用多态对象来表示。

2023-06-08 23:05:22 375

原创 BACnet command对象介绍和应用场景

实现报警和安全控制:通过Command对象结合其他BACnet对象,例如报警对象、安全对象等,实现报警和安全控制,例如在一定时间内检测设备的状态并执行相应的操作,或者在一定时间内检测传感器的数值是否超过阈值并触发报警等。实现自动化控制:通过Command对象结合其他BACnet对象,例如时间表对象、设备对象等,实现自动化控制,如定时执行某些操作、根据温度传感器的数值自动调节设备温度等。它通常是一个整数值。控制设备的开关、调节温度等操作:通过Command对象发送控制命令,实现对设备的控制和监控。

2023-06-07 00:28:07 480

原创 BACNET定时器对象介绍和应用场景

定时器对象可以与其他BACnet对象一起使用,例如时间表对象、设备对象等,以实现更复杂的控制和调度功能。也可以将定时器对象与设备对象结合使用,以控制设备的开关、调节温度等操作。定时器对象还可以用于报警和安全控制等应用场景,例如在一定时间内检测设备的状态并执行相应的操作,或者在一定时间内检测传感器的数值是否超过阈值并触发报警等。Time Interval属性:表示定时器执行操作的时间间隔,即定时器执行操作后等待的时间。Time Delay属性:表示定时器的延迟时间,即定时器开始执行操作前等待的时间。

2023-06-05 21:49:08 147

原创 BACNET时间表对象介绍

时间表对象可以与其他BACnet对象一起使用,例如日历对象、定时器对象、设备对象等,以实现更复杂的控制和调度功能。也可以将时间表对象与设备对象结合使用,以控制设备的开关、调节温度等操作。Exception Schedule属性:表示时间表的异常情况,即在某些特定日期或时间段内,时间表应该执行不同的操作。它包含一周中每天的24小时,每小时可以有不同的操作,可以是一个数字、布尔值、枚举值或其他类型的数据。Effective Period属性:表示时间表的有效期,即时间表开始执行的时间和结束执行的时间。

2023-06-05 21:43:11 214

原创 BACNET如何实现MSTP转IP路由,用ARM实现

实现路由功能:需要实现BACnet MSTP和IP之间的路由功能,包括将MSTP数据包转换为IP数据包并发送到IP网络上,将IP数据包转换为MSTP数据包并发送到MSTP网络上等。集成硬件和软件:需要将ARM处理器、网络转换芯片或模块、网络路由器芯片或模块等硬件集成起来,并将BACnet MSTP和IP通信协议、MSTP和IP之间的转换、路由功能等软件集成到ARM处理器中。实现MSTP和IP之间的转换:需要实现MSTP到IP之间的数据包转换,包括地址转换、数据包格式转换等。

2023-06-04 09:35:07 483

原创 winform C#界面设计方法,处理组件拖放

拖放事件处理:当用户拖动一个控件时,可以在控件的DragDrop、DragEnter和DragOver事件中处理拖放操作。例如,可以在DragEnter事件中检查数据格式是否正确,然后在DragDrop事件中将控件添加到所需的容器中。当用户在容器控件中拖放控件时,可以在容器控件的DragDrop事件中将控件添加到相应的位置。可以使用拖放事件处理、数据格式、容器控件、控件位置和大小、控件对齐等方法来创建和编辑界面。控件位置和大小:在拖放操作中,可以通过设置控件的位置和大小来放置控件。

2023-05-28 18:43:09 734

原创 C语言的排序算法有哪些?

以上是常见的一些C语言排序算法及其实现示例代码,每一种算法都有自己的特点和适用场景。选择排序(Selection Sort)插入排序(Insertion Sort)冒泡排序(Bubble Sort)快速排序(Quick Sort)归并排序(Merge Sort)堆排序(Heap Sort)

2023-05-25 07:20:32 348

原创 C#的基本语法有哪些?如何使用它

程序中包含了命名空间、类定义、方法定义、变量声明、数据类型、条件语句、循环语句等基本语法元素。同时,程序中使用了System命名空间,该命名空间包含了C#语言中的常用类和函数,在实际应用中非常有用。变量声明:使用var、int、double、string等关键字声明变量。类定义:使用class关键字定义类,包括类名、成员变量、成员函数等。数据类型:支持多种基本数据类型,如整型、浮点型、布尔型、字符型等。条件语句:使用if、else if、else等关键字实现条件语句。

2023-05-22 21:42:31 296

原创 如何使用C#语言通过BACnet file对象上传和下载Json文件到控制器

使用BACnet库中的BACnetFile对象获取控制器中的BACnet file对象。BACnetFile对象是BACnet库中提供的一个类,用于管理BACnet file对象。BACnet file对象是BACnet协议中的一个标准对象,用于管理设备中的文件。该方法需要指定文件名、上传路径、要上传的文件内容等参数。在实际使用中,需要根据具体的场景和需求进行相应的调整和优化。同时,需要注意文件上传和下载的安全性和可靠性,以保证数据的完整性和保密性。该方法需要指定文件名、下载路径等参数。

2023-05-21 09:05:03 375

原创 C语言中如何使用结构体和回调函数创建对象属性和函数

通过结构体类型、对象属性和回调函数的定义和调用,就可以在C语言中创建对象,并对它们的属性进行修改,同时还可以使用回调函数对对象进行操作。需要注意的是,回调函数可以实现对象的函数功能,而不需要在结构体类型中直接定义函数,从而实现了较好的封装性和可扩展性。这里定义了一个名为my_function的回调函数,它接受一个指向void类型的指针obj作为参数,在函数体内将它转换为MyObject类型的指针,并访问对象的属性,从而修改它们的值。

2023-05-19 06:34:44 265

原创 c语言回调函数的说明和使用方法

回调函数是一种特殊的函数,它不是由程序直接调用,而是在某些特定的情况下由系统或其他程序调用。回调函数通常用于事件处理、消息传递等方面,可以实现程序的模块化和可扩展性。

2023-05-18 12:27:23 393

原创 BACnet协议相比modbus协议的优势在哪些方面

支持更多的应用领域:BACnet协议不仅可以用于楼宇自动化系统,还可以应用于工业自动化、能源管理、物流管理等领域,而modbus协议主要应用于工业自动化领域。更高的互操作性:BACnet协议是一种开放的标准协议,可以与不同厂商的设备进行互操作,而modbus协议则存在一些兼容性问题。综上所述,BACnet协议在应用范围、可扩展性、互操作性、安全性和数据传输精度等方面都具有优势,适用于更多的应用场景和需求。更强的安全性:BACnet协议支持多种安全机制,如身份认证、数据加密等,可以提高系统的安全性和可靠性。

2023-05-18 00:17:54 2254

原创 编写C语言程序如何降低耦合度

例子:在Linux内核中,许多子系统都使用了设计模式,例如驱动程序中的工厂模式、网络协议栈中的状态机模式等。例子:在Linux内核中,每个模块都有自己的头文件和源文件,通过模块之间的接口进行通信。例如,网络子系统中的TCP模块和IP模块就是独立的模块,它们之间通过接口函数进行通信。例子:在Linux内核中,每个模块都有自己的头文件,其中定义了模块的接口函数和数据结构。例子:在Linux内核中,使用了许多局部变量和参数传递的方式进行数据交换,避免了过度依赖全局变量。

2023-05-15 23:30:42 717

原创 C# 和 C 语言有哪些区别和联系以及各自有什么优缺点

C 语言的设计目标是为了开发 Unix 操作系统,因此它是一种系统级编程语言,能够直接调用操作系统提供的系统函数和系统调用。但是 C 语言具有比较高的灵活性和效率,可以直接操作硬件资源,因此在系统软件和嵌入式系统开发中仍然具有广泛的应用。由于 C# 语言具有良好的易用性和高效性,可以用于开发各种类型的应用程序,如桌面应用程序、Web 应用程序、移动应用程序等。C# 语言采用了现代化的语法,具有比较高的易读性和易用性。总的来说,C# 语言适合于开发大型的、复杂的应用程序,例如企业级应用、大型游戏等;

2023-05-15 08:33:28 6202

原创 如何通过BACnet IP协议设置和读取时间

循环运行BACnet协议栈,并在循环中处理接收到的BACnet请求。最后,使用定时器定时更新RTC时间。函数用于设置RTC时间。在主函数中,首先初始化BACnet对象,然后设置RTC时间为当前时间。请注意,上述程序仅用于示例用途,实际应用中还需要根据实际需求进行修改。上述程序使用BACnet IP协议实现了设备对象的设置和读取。函数用于获取当前时间,

2023-05-10 23:08:39 274

STM32电机库电机调速程序,带按键调速和软件表盘实时显示,调节速度可达10w转以上

本开发程序是基于STM32电机控制软件开发套件(MCSDK),,可以通过MCSDK表盘进行FOC调速也可以通过按键进行多档位调速,也可以通过MCSDK软件进行速度精确调节,还有速度实时显示,可以调节10w转以上高速电机不卡顿,STM32电机库(STM32 Motor Control Library)是STMicroelectronics提供的一套用于电机控制的软件库,支持多种电机控制算法,包括FOC(Field-Oriented Control,磁场定向控制)算法。FOC算法是一种高级的电机控制算法,能够实现高效、精确的电机控制,特别适用于高速电机控制。在FOC调节电机时,需要了解电机的参数特性和控制需求,如电机的电感、电阻、惯性等,以及所需的速度或位置控制要求。可以使用用ST Motor Profiler 测量无刷电机参数或者手动测量,测量出来的参数才可用于高速电机调试

2024-01-06

BACnet常用的开发工具,包括点位扫描工具,主站模拟工具以及抓包分析工具

在BACnet开发中,以下是常用的开发工具: BACnet点位扫描工具:这些工具用于扫描和发现BACnet网络中的设备和数据点。它们可以帮助开发人员快速识别和定位设备,并获取设备的属性和数据点信息。一些常用的BACnet点位扫描工具包括Yabe,BACnetscan 等。 BACnet主站模拟工具:主站模拟工具用于模拟BACnet主站的功能,以便测试和验证设备的响应和行为。它们允许开发人员发送和接收BACnet命令和数据,并模拟不同的场景和用例。一些常见的BACnet主站模拟工具包括CAS BACnet Explorer、VTS等。 BACnet抓包分析工具:这些工具用于捕获和分析BACnet通信过程中的数据包和消息。它们可以帮助开发人员检查通信的质量和效率,并识别潜在的问题和错误。一些常用的BACnet抓包分析工具包括Wireshark、BACnet Sniffer等。 这些开发工具可以帮助开发人员进行BACnet网络的调试、测试和验证。它们提供了丰富的功能和界面,允许开发人员与BACnet设备进行交互,并分析通信过程中的数据和消息。

2024-01-06

stm32f103RE CAN总线收发例程以及CAN总线协议完整资料

该程序包括CAN总线回环测试和双机通信例程,有完整的协议资料供查阅分析,CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO*1 国际标准化的串行通信协议。 在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统 被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很 多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需 要,1986 年德国电气商博世公司开发出面向汽车的 CAN 通信协议。此后,CAN 通过 ISO11898 及 ISO11519 进 行了标准化,现在在欧洲已是汽车网络的标准协议。 现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。

2024-01-06

常用的串口和网络调试工具

串口和网络调试工具主要用于调试和监视串口通信和网络通信的过程。它们提供了实时查看和分析通信数据的能力,帮助开发人员识别和解决通信问题,以确保通信的可靠性和稳定性。 具体而言,串口和网络调试工具的用途包括: 监视数据流:可以实时查看串口或网络上的数据流,包括收到的数据和发送的数据。这有助于验证数据的正确性和完整性,以及确定通信是否正常进行。 分析通信协议:通过解析和显示通信协议中的数据包和字段,帮助开发人员理解通信协议的工作方式和数据结构。这对于调试和故障排除非常有帮助。 发送和接收数据:可以通过串口或网络调试工具发送特定的数据包或命令,以模拟设备或系统对特定指令的响应。这对于测试和验证通信协议的各种功能和情况非常有用。 监测通信性能:可以测量和记录通信的延迟、速率、丢包率等指标,帮助评估和优化通信性能。这对于大规模系统或高要求的应用很重要。 捕获和分析日志:可以捕获和记录通信过程中的日志信息,包括错误、警告和其他事件。这有助于跟踪和分析问题,并进行故障排除。 调试远程设备:通过网络调试工具,可以远程连接和调试位于不同位置的设备。这对于分布式系统或远程设备的调试非常有用。

2024-01-06

STM32f103 wifi ESP8266 云平台控制例程,带按键控制,有操作说明文档

配置入网 支持 SoftAp 和 AirLink 两种方式配置入网,相应接口为 gizwitsSetMode(),本版软件采 用按键的方式,相关代码参考 main.c 文件的 key 相关操作。 另外,可以通过 gizwitsSetMode()接口复位模组,恢复默认出厂设置。 数据采集 该工程代码默认在 Gizwits/gizwits_product.c 文件中 userHandle()函数实现传感器数 据采集,并且该函数在 while 循环执行,原则上用户只需要关心如何采集数据。特别提醒, 默认 while 循环执行速度较快,需要针对不同的需求,用户可调整数据点数据的采集周期和 接口实现位置,预防由于传感器数据采集过快引发的不必要的问题。数据点变量的初始化见 Gizwits/gizwits_product.c 文件 userInit 函数,待用户完善。 事件处理 数据点方式将转换成数据点事件, 开发者只需要在 gizwits_product.c 文件的 gizwitsEventProcess()相应事件下作具体处理即可。 其他 Wifi 状态 参考接口 gizwitsEventPro

2024-01-06

stm32f103re modbus主站和从站例程

stm32f103re modbus rtu主站和从站例程,采用RS485通信,串口接收采用队列方式实现,modbus指令很完整,包括常用的读写指令01H,02H,03H,04H,06H,10H 【EWARMv6】 IAR公司EWARM工程文件夹 【MDK-ARM(uV4)】KEIL的MDK工程文件,uVision4版本。 output(mdk).hex - 采用KEIL MDK编译好的可执行文件(定位在CPU内部Flash执行),可以直接下载到CPU内部Flash执行。 output(iar).hex - 采用IAR EWARM编译好的可执行文件(定位在CPU内部Flash执行),,可以直接下载到CPU内部Flash执行。

2024-01-06

使用单片机STM32F103C8T6 采用wifi芯片 ESP8266实现和机智云正常对接,用户可以实现自己的逻辑

1:使用单片机STM32F103C8T6 2: wifi芯片使用ESP8266 3: 云平台使用机智云 4:可以用过按键实现其他功能 5:用户可以在gizwitsEventProcess函数内添加数据点事件处理逻辑,如调用相关硬件外设的操作接口

2024-01-06

时钟芯片RX8025T的STM32驱动例程

时钟芯片RX8025T的STM32驱动例程,包括年月日时分秒的设置和读取,采用模拟IIC通讯

2023-05-23

linux应用开发例程,很经典

linux应用开发c语言例程,包括linux标准IO,进程与线程,网络编程和数据库编程

2023-05-19

ESP8266 WIFI模块程序,基于STM32F103C8单片机,采用串口通讯和HAL库实现,带按键控制,程序模块化很好

ESP8266 WIFI模块程序,基于STM32F103C8单片机,采用串口通讯和HAL库实现,带按键控制,程序模块化很好,配合机智云使用,可以实现stm32之esp8266与机智云app云端连接

2023-05-19

AGS01DB 基于STM32f103的开发例程,采用IIC通讯

AGS01DB 基于STM32f103的开发例程,采用IIC通讯,STM32标准库实现,程序清晰易懂,有详细注释,移植方便

2023-05-19

vscode是一个轻量且强大的跨平台开源代码编辑器,支持Windows,OSX和Linux 内置JavaScript、TypeS

该编辑器集成了所有一款现代编辑器所应该具备的特性,包括语法高亮(syntax high lighting),代码自动补全(又称 IntelliSense)、代码重构功能,并且内置了命令行工具和 Git 版本控制系统,用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能

2023-03-05

GD32 VS STM32 修改参考.pdf

GD32 VS STM32 修改参考.pdf

2022-06-04

GD32F103 各项性能参数.pdf

GD32F103 各项性能参数.pdf

2022-06-04

这篇应用笔记描述了如何在AT32 MCU上使用FPU功能

AN0037_How_to_use_FPU_ZH_V1.0.0.pdf 这篇应用笔记描述了如何在AT32 MCU上使用FPU功能,分别介绍了keil和iap开发环境下的操作

2022-06-04

从 STM32F10x 移植到 GD32E103 的移植说明

对于使用微控制器进行产品开发的设计人员来说,因产品及功能升级,往往需要将一种微控制器替 换成另一种微控制器,在保留既有功能的情况下增加新功能。为了更快地推出新产品,设计人员经 常要将应用程序移植到新的微控制器。 本应用笔记旨在帮助您快速将应用程序从 STM32F10x 系列微控制器移植到 GD32E103 系列微控 制器(基于 STM32F10x 标准库 V3.5.0)。 GD32E103 和 STM32F10x 系列相比,考虑软硬件兼容性,从 Flash 和 SRAM 容量,包括外设 模块的增强性能上来看,GD32E103 最接近 STM32F10x 互联性。

2022-06-04

AT32F403A AT32F407通过USB口进行IAP升级的keil程序和说明文档

对于AT32 MCU,除了出厂固化的bootloader,用户也可以在应用程序中编写自己的bootloader程 序,用于最终产品的固件更新。此功能称为应用程序内编程(IAP)。 本应用笔记的目的是提供在AT32微控制器上创建IAP应用程序的一般准则。 AT32微控制器可以运行用户特定的固件来对微控制器中嵌入的闪存执行IAP。此功能可以使用产品可 用和支持的任何通信接口。使用自定义协议协议的USB是本应用笔记中的示例。 IAP_Programmer.exe上位机软件和嵌入式IAP USB示例的源代码位于BSP固件库的utilities文件夹 内。

2022-05-30

AT32 串口IAP升级程序以及操作步骤说明

对于AT32 MCU,除了出厂固化的bootloader,用户也可以在应用程序中编写自己的bootloader程 序,用于最终产品的固件更新。此功能称为应用程序内编程(IAP)。 本应用笔记的目的是提供在AT32微控制器上创建IAP应用程序的一般准则。 AT32微控制器可以运行用户特定的固件来对微控制器中嵌入的闪存执行IAP。此功能可以使用产品可 用和支持的任何通信接口。使用自定义协议协议的USART是本应用笔记中的示例。 IAP_Programmer.exe上位机软件和嵌入式IAP USART示例的源代码位于BSP固件库的utilities文件夹 内。

2022-05-30

STM32F103 SD卡FAT32文件读写程序,采用SPI通讯方式

STM32F103 SD卡FAT32文件读写程序,采用SPI通讯方式

2022-05-26

lpc1751.lpc1752.lpc1754.lpc1756.lpc1758系列单片机说明书

lpc1751.lpc1752.lpc1754.lpc1756.lpc1758系列单片机说明书

2022-05-26

LPC采用burst方式进行多通道ADC采样程序

LPC采用burst方式进行多通道ADC采样典型程序

2022-05-26

stm32单片机AD采集常用的十种滤波算法

stm32单片机AD采集常用的十种滤波算法

2022-05-24

RN8209电表专用芯片例程以及相关资料

RN8209电表专用芯片例程以及相关资料

2022-05-24

st电机库无感调速,采用OLED显示

采用stm32f103单片机,通过按键进行电机速度值设置,通过PID算法进行调速。还可以通过按键进行菜单切换,显示pid参数和速度值等,无霍尔传感器,使用ST电机库5.3版本,使用0.96寸的屏OLED进行显示,OLED芯片型号为SSD1306,使用4线串行模式读写,有良好的人机交互界面,适合电机调速无感应用

2022-05-22

新型国产单片机雅特力AT32F403A数据手册和选型表

国产32位单片机AT32F403A,完美替代STM32F103, 管脚PIN TO PIN兼容,性价比很高,AT32F403A只要十几块钱,而stm32需要一百多,AT32F403A采用cotex-M4内核,主频可达240M,资料包括数据手册寄存器说明,管脚功能定义以及和stm32替换说明,还有AT32最新的选型手册,可以采用keil mdk进行开发,jlink进行程序烧写调试,需要安装AT32F4xx Keil Pack 。是我精心整理的,方便初学者阅读学习

2022-05-22

基于STM32F103单片机的modbus协议进行数据采集和显示的程序

STM32F103通过modbus主站进行数据采集和显示的程序,可以通过按键切换菜单进行参数设置,菜单翻页查询,包括内部RTC时间显示,电压和内阻测量和查询,还可以记录查询.其中03命令字是读取保持寄存器,04是读取模拟量输入,06是设置保持寄存器,07命令字是内阻采集,主站485口串口2波特率设置为9600bps,串口1设置为115200作为从站485口

2022-05-22

SetupSTM32CubeMX-5.2.0.rar

STM32图形化工具cubeMX5.2,功能比较全比较稳定的版本,可以通过该软件配置好寄存器和驱动外设,生成st例程代码,对项目开发很有用

2021-06-03

DSView_v0.9.9_x64_setup_cn.rar

逻辑分析仪调试工具,功能很强大,支持uart,spi,iic,PWM等多种协议,支持频率范围广

2021-06-03

amcktszs_v2.4.0.0.rar

单片机串口助手调试工具 ,比较好用

2021-06-03

LED1_Demo1130.rar

ESP8266 STM32控制程序,包含云平台对接解析和wifi发送程序

2021-06-03

USR-TCP232-Test-V1.3.rar

有人以太网tcp测试工具

2021-05-26

hex2dfu.rar

hex转dfu工具

2021-05-26

modbus rtu通信协议说明.docx

modbus rtu通讯协议,包含读写寄存器和写线圈

2021-05-26

基于PIC单片机的FAT32文件系统测试程序

基于PIC单片机的FAT32文件系统测试程序,非常适合初学者使用

2018-12-04

周立功直流电机PID程序

单片机PWM开环和PID闭环程序,附带指导说明和上位机调试软件非常值得学习

2018-12-04

LPC17XX IIC AT24C16读写测试程序

LPC17XX IIC AT24C16读写测试程序,非常适合初学者使用

2018-11-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除