STM32 Embedded Software 工作以来一直使用ST的STM32系列芯片,ST为开发者提供了非常方便的开发库。到目前为止,有标准外设库(STD库)、HAL库、LL库 三种。前两者都是常用的库,后面的LL库是ST最近才添加,目前支持的芯片也偏少。各库如下所示: 其中,STD库和HAL库 ...
分类:
其他好文 时间:
2020-05-24 11:55:04
阅读次数:
76
在单片机编程过程中,有时候需要反复操作多条同相语句,这时候运用#define宏定义多条语句可以大大简化编程内容。 语法规则如下: 1.宏定义单条语句: #define PI 3.14159 // 定义圆周率pi的值 2.宏定义多条语句:中间用逗号或百分号,两头加大括号。#define SendIIC ...
分类:
编程语言 时间:
2020-05-23 16:45:37
阅读次数:
210
经常遇到使用链表和结构中计算数组申请内存失败的情况,我的模板代码 startup文件中的宏定义 Heap_Size EQU 0x00000200,这里定义了512字节导致,手动修改这个地方的数值,因为单片机的内存是远远大于512字节的,具体和我们使用的stm32片子有关。我改为了Heap_Size ...
分类:
其他好文 时间:
2020-05-23 16:41:04
阅读次数:
81
这里的单脉冲控制是指在PWM下产生指定个数的脉冲。 先在CubeMx中按照PWM进行配置。 定义一个变量表示脉冲个数。 uint8_t PWMnum = 5; 开启PWM中断。 HAL_TIM_PWM_Start_IT(&htim1, TIM_CHANNEL_1); 定义脉冲完成回调函数。 uint ...
分类:
其他好文 时间:
2020-05-23 15:03:36
阅读次数:
135
说明 这节实现的功能: STM32+W5500实现MQTT通信控制, 通过MQTT调试助手控制开发板两路继电器 485/422接口输入的数据通过W5500(MQTT) 转发给MQTT调试助手 MQTT调试助手发送的信息通过W5500(MQTT)转发到485/422接口输出 细节功能: 1.DHCP动 ...
分类:
其他好文 时间:
2020-05-23 09:58:54
阅读次数:
132
(1) STM32的复位时间至少要大于2个机器周期才生效,复位时间与RC值有关。 (2) 复位按键打开时,RES被拉R2拉高,合上按键,由于电容两端电压不能突变,电容会开始放电,放完后RES电位降到GND。 ...
分类:
其他好文 时间:
2020-05-22 21:46:00
阅读次数:
388
STM32中APB1和APB2控制对应表 分类 APB1 电源接口 UART2、UART3 CAN TIM2、3、4 SPI2 IIC1、IIC2 看门狗 USB APB2 GPIO_A-E USART1 ADC123 TIM1、8 SPI1 ALL ...
分类:
其他好文 时间:
2020-05-22 12:41:47
阅读次数:
91
按键可以用按键扫描的方法和外部中断的方法。 外部中断看前面,个人推荐使用外部中断更好。 其余情况可以用按键扫描,这里只讲按键扫描的方法。 先在main.h中定义按键名称 #define KEY0 HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_5) //KEY0按键PC5 #defi ...
分类:
其他好文 时间:
2020-05-22 09:35:56
阅读次数:
124
经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的。PLC的本质就是单片机,在单片机的基础上添加一些外围电路并形成产品化,即构成了PLC控制器。今天在这里给大家分享一个上位机与单 ...
分类:
其他好文 时间:
2020-05-21 10:26:10
阅读次数:
42
#include"reg52.h"//单片机头文件 #define uchar unsigned char//宏定义,用uchar表示unsigned char,叫无符号字符型数据类型,取值范围为:0到255。 #define uint unsigned int//宏定义,用uint表示unsign ...
分类:
其他好文 时间:
2020-05-19 23:05:10
阅读次数:
91