1、准备开发板
这里我选用了一块带以太网口插卡4G的DTU终端,可实现2G/3G/4G信号远距离数据透明传输通讯,以太网100Mbps有线传输通讯,通过工业RS232/485/422等接口直接连接设备进行无线远程传输。4G DTU在工业自动化上具有非常广泛的应用,而且具有传输数据量大,传输速度快,传输时延低,传输质量稳定的特点。弥补了NB模块传输速度慢、传输数据量少等缺点。尤其适合数据采集点分散、位置偏远、无人职守、有线通讯安装施工不便、成本高的行业,例如气象、环保、水利、电力、农业、交通、石油管线监控、城市管网监控、工业监控等,极大提高了数据通讯能力,节约人力物力成本,实现了数据通讯的跨越。
2、STM32CubeMX生成代码
搜索并选择芯片型号
配置系统时钟
配置Debug
配置GPIO
配置时钟树
STM32F103RE的最高主频可达到72M,最后使HCLK = 72Mhz即可:
生成工程设置
代码生成配置
生成代码
生成成功
3、在MDK中编写代码
/* USER CODE BEGIN Private defines */
typedef enum
{
LED_OFF = 0,
LED_ON,
LED_Toggle
} LED_ENUM;
#define LED2_Set(status) status != LED_Toggle ? HAL_GPIO_WritePin( LED2_GPIO_Port, LED2_Pin, status != LED_ON ? GPIO_PIN_RESET : GPIO_PIN_SET): HAL_GPIO_TogglePin( LED2_GPIO_Port, LED2_Pin); //利用define可以美化和简短我们的代码,知识点就用到了三目运算符的嵌套判断。
/* USER CODE END Private defines */
在main.c的main函数中编写以下代码
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
/* USER CODE BEGIN 3 */
LED2_Set(LED_Toggle); //翻转LED
HAL_Delay(1000); //延时1秒
/* 下面的代码等效于上面的代码 */
// LED2_Set(LED_ON); //点亮LED
// HAL_Delay(1000); //延时1秒
// LED2_Set(LED_OFF); //熄灭LED
// HAL_Delay(1000); //延时1秒
}
/* USER CODE END 3 */
编译工程
4、配置烧录器
5、烧录代码
6、实验现象
控制LED小灯每1秒钟闪烁一次。
1、准备开发板
这里我选用了一块带以太网口插卡4G的DTU终端,可实现2G/3G/4G信号远距离数据透明传输通讯,以太网100Mbps有线传输通讯,通过工业RS232/485/422等接口直接连接设备进行无线远程传输。4G DTU在工业自动化上具有非常广泛的应用,而且具有传输数据量大,传输速度快,传输时延低,传输质量稳定的特点。弥补了NB模块传输速度慢、传输数据量少等缺点。尤其适合数据采集点分散、位置偏远、无人职守、有线通讯安装施工不便、成本高的行业,例如气象、环保、水利、电力、农业、交通、石油管线监控、城市管网监控、工业监控等,极大提高了数据通讯能力,节约人力物力成本,实现了数据通讯的跨越。
2、STM32CubeMX生成代码
搜索并选择芯片型号
配置系统时钟
配置Debug
配置GPIO
配置时钟树
STM32F103RE的最高主频可达到72M,最后使HCLK = 72Mhz即可:
生成工程设置
代码生成配置
生成代码
生成成功
3、在MDK中编写代码
/* USER CODE BEGIN Private defines */
typedef enum
{
LED_OFF = 0,
LED_ON,
LED_Toggle
} LED_ENUM;
#define LED2_Set(status) status != LED_Toggle ? HAL_GPIO_WritePin( LED2_GPIO_Port, LED2_Pin, status != LED_ON ? GPIO_PIN_RESET : GPIO_PIN_SET): HAL_GPIO_TogglePin( LED2_GPIO_Port, LED2_Pin); //利用define可以美化和简短我们的代码,知识点就用到了三目运算符的嵌套判断。
/* USER CODE END Private defines */
在main.c的main函数中编写以下代码
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
/* USER CODE BEGIN 3 */
LED2_Set(LED_Toggle); //翻转LED
HAL_Delay(1000); //延时1秒
/* 下面的代码等效于上面的代码 */
// LED2_Set(LED_ON); //点亮LED
// HAL_Delay(1000); //延时1秒
// LED2_Set(LED_OFF); //熄灭LED
// HAL_Delay(1000); //延时1秒
}
/* USER CODE END 3 */
编译工程
4、配置烧录器
5、烧录代码
6、实验现象
控制LED小灯每1秒钟闪烁一次。
举报