stm32cubemx 组态怎么实现

stm32cubemx 组态怎么实现,第1张

1新建工程

打开STM32cubeMX软件,点击New Project。选择对应开板MCU(STM32F103ZET6)。

选择工程后进入工程界面,如下图所示。

2 配置外设。

RCC设置,选择HSE(外部高速时钟)为Crystal/Ceramic Resonator(晶振/陶瓷谐振器)

GPIO口功能选择,PF6,PF7,PF8,PF9为LED1-LED4找到对应管脚设置为GPIO_Output模式。(**引脚为该功能的GPIO已被用作其他功能,可以忽略。绿色表示管脚已使用)

3 时钟配置

时钟配置采用图形配置,直观简单。各个外设时钟一目了然。STM32最高时钟为72M,此处只有在HCLK处输入72,软件即可自动配置。(RCC选择外部高速时钟)。

4功能外设配置

在配置框我们可以看到有几个区域,分别对应的功能设置如下

Multimedia(多媒体):音频视频、LCD

Control(控制):定时器

Analog(模拟):DAC、ADC

Connectivity(通讯连接):串口、SPI 、I2C、USB、ETH

SYStem(系统):DMA(直接存储器存取)、GPIO、NVIC、RCC、看门狗

middlewares(中间件): FreeRTOS、FATFS、LwIP、USB

此工程中DMA没用的不用配置,NVIC(嵌套中断向量控制器(Nested Vectored Interrupt Controller))配置中断优先级。RCC不用配置。

GPIO Pin Level (管脚状态):低电平

GPIO mode (管脚模式 ):推挽输出

Maximum output speed (最大输出速度):低速

User Label (用户标签):LED1

更改用户标签,管脚配置图会显示管脚的标签。

4 功耗计算

这个根据配置的外设计算功耗,不用理会。

5 生成工程报告

点击Project –>Generate Reports或者点击快捷图标生成报告。系统会提示先创建一个工程项目。点击Yes设置工程。

输入工程名,选择工程路径(注意不要出现中文,否则可能出错)。工具链/IDE选择MDK-ARM V5。最后面可以设置堆栈大小,此处默认不作修改。

在Code Generator中找到Generated files框,勾选Generated periphera initialization as a pair of 'c/h' files per IP。外设初始化为独立的C文件和头文件。

点击生成报告,工程目录下会生成txt文件和pdf文件,里面记录了我们刚才的设置。

6 生成工程代码

点击Project –>Generate Code或者点击快捷图标生成工程代码。

点击Open Project打开工程。到此就配置好工程外设初始化。

点击Build按钮,Build Optput信息框会输出没有错误没有警告。

6 添加应用程序

在gpioc文件中可以看到LED管脚的初始化函数。

在stm32f1xx_hal_gpioh头文件中可以看到GPIO的 *** 作函数。

在main函数中的while循环中添加LED流水灯效果的应用程序。

重新编译程序,点击下载到Open103Z-C开发板。如果提示错误,可以点击图标对Option for Target 的Dubug选项进行修改。(图上选的是ST-LINK)

点击Settings->Flash Download勾选 Reset and Run选项。这样程序下载后自动启动运行,不用再按一下复位或者重新上电才能运行。

程序下载到Open103Z-C开发板。可以看到LED1~LED4依次被点亮,实现流水灯的效果。

总结:STM32Cube提供了固件库,用户可直接调用固件库函数来开发,并且可以很好的实现STM32-MCU全系列的代码一致性。同时STM32CubeMX工具提供的可视化引脚、外设、时钟等配置功能,可以帮助快速完成工程的建立、初始化。大大降低了开发者的工作量。

后续我们会结合微雪Open746I-C开发板,通过STM32cubeMX系列教程讲解如何学习STM32F7系列的片上外设。通过STM32F7系列的学习,可以让各位更快的掌握其他系列的使用方法。

附上出处链接:>

把定时器设置成50ms一次定时中断,作为时间基准,在定时中断里再每次对一个变量计数加加得到想要的05秒和2秒时间基准 define uint unsigned int //定义无符号整数 void delay(uint); //声明延时函数 void main(void){ uint i;uchar temp;while(1){ temp=0xFE;for(i=0;i<8;i++) //8个流水灯依次全部点亮 { P1=temp;delay(500

用定时器实现流水灯从左到右双位循环,跳动频率为1秒。程序怎么编啊 —— 用定时器实现流水灯,跳动频率为1秒。用定时器定时50ms,采用中断方式,对定时中断计数,计数20次就是1秒。如下仿真图,P1口接8个LED灯。

有关于单片机的一段程序,是用定时器做流水灯的 —— 要用定时器 就得用定时器中断。。至于全亮的原因 是因为 delay1s 没有起到延时1s的作用 二十极其短的延时 导致流水灯太快 给人感觉是全亮的。。你可以改成 long a ;while(a<500000)(值大小自己调试)

如何用定时器中断实现流水灯1秒定时流水 —— 可以中断50ms一次(不一定非要50ms),每次中断计数一次,等计数时间到1s,就执行一次流水动作

求助,用定时器控制流水灯循环 —— 将定时器中断时间设置为一秒一次。声明一个全局的变量temp 在初始化的时候赋初值,在中断服务函数中

用定时器控制16路流水灯循环单片机,且定时时间可调,谢谢! —— interrupt1{uchari;//循环变量//重装定时器初值,50ms中断一次p++;if(p>=20)//一秒钟改变一次状态{for(i=0;i<8;i++){P1=temp;temp<<=1;//左移一位,流水灯}p=0;}}呵呵,这就是简单的后台任务处理思想

51单片机定时器实现流水灯,并用按键外部中断控制改变流水灯的流向,这个 —— EA=1;//开总中断 EX0=1;//开外部中断0 IT0=1;//下降沿触发 while(1){ if(flag==0){ for(i=0;i<8;i++){ P0=0X01<<i;delayms(500); } } if(flag==1){ for(i=0;i<8;i++){ P0=0X80

51单片机用定时器,怎么编程流水灯一秒闪烁一次, —— 先写一个延时子函数delay,延时时间1秒。然后写LED=0;delay(1);LED=1;这样就可以做到一亮一灭,再把这段程序加入到循环中就可以,循环函数很简单不用再说了吧,如果还不懂回复我给你程序

plc怎么用计时器做3个流水灯程序 —— 计数器,定时器……用计数器,就数值1点亮一个,2点亮一个,3点亮一个,加完复位,加个循环;定时器,定时一秒,二秒,三秒,每个对应一个灯,加个循环

只有一个任务为什么还要使用 *** 作系统呢!我没有流水灯的程序。我给你提供一个LED闪烁的程序。

程序里面建立三个任务,开始任务,LED0任务和LED1任务。LED0每秒钟亮80毫秒,LED1亮300毫秒,灭300毫秒,以此循环。

#include <stm32f10xh>

#include "sysh"

#include "usarth"

#include "delayh"

#include "ledh"

#include "includesh"

#define START_TASK_PRIO 10

#define START_STK_SIZE 64

OS_STK START_TASK_STK[START_STK_SIZE];

void start_task(void pdata);

//LED0ÈÎÎñ

#define LED0_TASK_PRIO 7

#define LED0_STK_SIZE 64

OS_STK LED0_TASK_STK[LED0_STK_SIZE];

void led0_task(void pdata);

#define LED1_TASK_PRIO 6

#define LED1_STK_SIZE 64

OS_STK LED1_TASK_STK[LED1_STK_SIZE];

void led1_task(void pdata);

int main(void)

{

Stm32_Clock_Init(9);

delay_init(72);

LED_Init();

LED_Init();

OSInit();

OSTaskCreate(start_task,(void )0,(OS_STK )&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );

OSStart();

}

void start_task(void pdata)

{

OS_CPU_SR cpu_sr=0;

pdata = pdata;

OS_ENTER_CRITICAL();

OSTaskCreate(led0_task,(void )0,(OS_STK)&LED0_TASK_STK[LED0_STK_SIZE-1],LED0_TASK_PRIO);

OSTaskCreate(led1_task,(void )0,(OS_STK)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);

OSTaskSuspend(START_TASK_PRIO);

OS_EXIT_CRITICAL();

}

void led0_task(void pdata)

{

while(1)

{

LED0=0;

delay_ms(80);

LED0=1;

delay_ms(920);

};

}

void led1_task(void pdata)

{

while(1)

{

LED1=0;

delay_ms(300);

LED1=1;

delay_ms(300);

};

}

具体详解请参考开源电子网。

STM32 神舟I号 开发板资料 目 录

术 语 表 8

前言必读(文档结构与快速入门) 8

第0章 入门了解篇 8

01 STM32嵌入式入门必看之文章(学习STM32的理由!!!!) 8

02 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习神舟系列) 10

021 需求定义 10

022 处理器的选择 12

023 开发成本的预测和估计 16

024 产品开发设计文档(需要包括硬件和软件两个方面) 16

025 嵌入式高手对技术的理解(含辛茹苦这么多年的精华体验) 18

第1章 神舟I号开发套件硬件结构 19

11 电路原理图 19

12 功能特点 19

13 神舟I号开发板硬件电路分析 21

131 STM32F103RBT6处理器 21

132 LED指示灯 24

133 普通按键与复位按键 25

134 USB接口 26

135 USB转串口接口 27

136 供电电源 28

137 RTC实时时钟 29

138 电位器(ADC介绍) 31

139 EEPROM存储器(IIC接口控制) 31

1310 W25X16 16M SPI FLASH(LCD屏上安装) 32

1311 MicroSD卡接口 33

1312 JTAG调试接口 35

1313 液晶显示模块 37

1314 温度传感器 38

1315 315M无线模块 39

1316 24G无线模块 40

1317 液晶屏 41

1318 其他扩展接口 41

14 硬件结构说明 43

15 连接器说明 44

16 硬件资源分配 46

161 处理器连接外围器件管脚分配 46

17 STM32系列ARM最小系统设计 48

第2章 其他篇 53

21 带触摸的液晶屏显示屏 53

22 液晶屏底板设计说明 53

第3章 STM32神舟I号基本 *** 作篇 53

31 简介 53

32 MDK 412集成开发环境的组成 53

33 安装MDK的流程步骤 54

34 工程的编辑 54

341 建立工程 54

342 建立文件 58

343 添加文件到工程 59

344 管理工程目录以及源文件 60

345 编译和连接工程 64

346 打开旧工程 66

35 RVMDK使用技巧 68

231 快速定位函数/变量被定义的地方 68

232 快速注释与快速消注释 69

233 快速打开头文件 69

36 JLINK V8仿真器的安装与应用 70

361 JLINK V8仿真器简介 71

362 JLINK ARM主要特点 71

363 JLINK V8仿真器安装 71

364 JLINK V8仿真器配置(MDK KEIL环境) 73

365 JLINK V8仿真器配置(IAR 环境) 79

366 J-FLASH如何烧写固件到芯片FLASH里 83

367 JLINK Commander工具查看相关信息 87

368 JLINK V8仿真器如何自动升级 88

37 在MDK开发环境中JLINK V8的调试技巧 90

38 如何通过串口下载一个固件到神舟I号开发板 92

39 从零开始新建一个STM32的工程模板 95

第3章 STM32神舟I号快速入门篇 115

31 STM32神舟I号实验例程结构 115

32 如何给神舟I号板供电 117

311 使用USB供电 117

312 使用USB转串口接口供电 117

313 使用JLINK V8供电 117

33 烧录固件程序的三种方法 118

34 如何编译和运行光盘里的第一个程序: 119

310 如何用JLINK V8仿真和调试第一个程序 123

第4章 STM32神舟I号功能部件基础篇 127

41 通用输入/输出(GPIO) 127

411 特性 127

412 应用领域 127

413 管脚描述 127

414 功能描述 127

415 寄存器描述 133

416 寄存器小结 137

417 例程01 单个LED点灯程序 137

418 例程02 单个LED灯闪烁 139

419 例程03 LED流水灯程序 140

42 中断控制器 143

421 简介 143

422 特性 143

423 关于NVIC 143

424 电平中断与脉冲中断 144

425 中断初始化与设置流程概述 144

426 寄存器描述 145

427 中断控制函数 148

428 外部中断示例 148

429 嵌套向量中断控制器(NVIC)使用示例 148

4210 IRQ使用示例 148

4211 软件中断使用示例 148

4212 中断嵌套使用示例 148

4213 这个例子说明如何设置在特定的CortexM3量表 地址以外的默认使用的功能的NVIC_SetVectorTable misch / c驱动程序。 148

4214 实验的意义与作用 148

43 KEY_LED按键与315M无线模块实验 149

421 实验的意义与作用 149

422 实验原理 149

423 硬件设计 150

424 软件设计 150

425 下载与测试 154

44 USART-COM串口发送实验 155

431 实验的意义与作用 155

432 实验原理 155

433 硬件设计 157

434 软件设计 157

435 下载与现象 159

45 USART-COM串口发送与接收实验 162

441 实验的意义与作用 162

442 实验原理 162

443 硬件设计 162

444 软件设计 162

445 下载与现象 164

46 ADC模数转换实验 165

451 实验的意义与作用 165

452 实验原理 165

453 硬件设计 166

454 软件设计 166

455 下载与现象 168

47 EEPROM读写程序实验 169

461 实验的意义与作用 169

462 试验原理 169

463 硬件设计 170

464 软件设计 171

465 下载与测试 174

48 SPI FLASH(W25X16)读写程序实验 175

471 SPI FLASH(W25X16)读写程序实验的意义与作用 175

472 实验原理 175

473 硬件设计 178

474 软件设计 178

475 下载与测试现象 185

49 实时时钟与年月日实验 186

481 实验的意义与作用 186

482 实验原理 186

483 硬件设计 187

484 软件设计 188

485 下载与测试 194

410 独立看门狗实验 195

491 实验的意义与作用 195

492 实验原理 195

493 硬件设计 197

494 软件设计 197

495 下载与测试 199

411 SYSTICK实验 200

4101 硬件设计 200

4102 软件设计 201

4103 下载与测试 202

412 TFT彩屏显示实验 203

4111 实验的意义与作用 203

4112 实验原理 203

4113 硬件设计 205

4114 软件设计 206

4115 下载与现象 211

413 TFT触摸屏显示加触摸实验 212

4121 实验的意义与作用 212

4122 实验原理 212

4123 硬件设计 213

4124 软件设计 213

4125 下载与现象 218

414 DS18B20温度传感器实验 219

4131 实验的意义与作用 219

4132 试验原理 219

4133 硬件设计 220

4134 软件设计 220

4135 下载与现象 222

415 24G模块通信试验 223

4141 24G模块通信实验的意义与作用 223

4142 实验原理 223

4143 硬件设计 223

4144 软件设计 224

4145 下载与测试现象 230

416 USB遥控鼠标实验 231

4151 实验的意义与作用 231

4152 实验原理 231

4153 硬件设计 232

4154 软件设计 233

4155 下载与测试 236

417 MICRO SD卡实验 237

4161 实验的意义与作用 237

4162 实验原理 237

4163 硬件设计 239

4164 软件设计 240

4165 下载与测试 244

418 SD-USB读卡器实验 245

4171 实验的意义与作用 246

4172 试验原理 246

4173 硬件设计 246

4174 软件设计 247

4175 下载与测试 250

419 UCOS_UCGUI_DEMO实验 251

第5章 高级实验 252

第6章 实验现象 252

做一个简单的只能避障小车吧。。。先简单的做起,比如实现直线走到,然后测障碍物的距离,并显示出来,然后慢慢加模块,加功能。。。最后最好移植一个ucos系统上去跑。。。。这样就能学到东西啦

以上就是关于stm32cubemx 组态怎么实现全部的内容,包括:stm32cubemx 组态怎么实现、STM32对GPIO *** 作一般用库函数,我想知道怎样用位 *** 作实现流水灯谢谢了!、定时器双向流水灯闪烁等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9467423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存