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 *** 作一般用库函数,我想知道怎样用位 *** 作实现流水灯谢谢了!、定时器双向流水灯闪烁等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)