4buhvhdvco164029378112.png
$ q& r9 P3 U* P9 c! h0 z
. J* |- L# j; Y% I. K0 J
今天给大家分享一下STM32 流水灯简单的仿真吧,我感觉这个提供有用的,但是自己也是第一次使用,主要是感觉曲线很高级。在PWM中查看脉宽很有用。
# R% \( T) E/ M
. J) j6 ~" `# ~1 F8 O/ G) ^! H" }code: led.c3 Q: `% B; |5 K1 j [3 _+ o$ i1 _
#include "led.h"#include "delay.h"/*GPIO的控制寄存器的配置1、配置输出引脚2、打开对应的输出的寄存器的时钟3、配置引脚输出的模式:强上拉、推完、开漏输出4、配置输出的速度。*/void Led_funcing(){GPIO_DeInit(LED_GPIO_PORT);// 注意这里的函数非常的重要,这里是将对应的GPIO端口初始化成默认的样子,因为这个端口可能在以前使用过,其他的配置可能发生了改变GPIO_InitTypeDef GPIOC_LED_Init; // 定义GPIO的结构体,也就是外设的结构体RCC_APB2PeriphClockCmd( LED_GPIO_CLK,ENABLE); //打开对应的GPIO的时钟,注意这里不同的外设可能挂载的时钟不同,所以需要开原理图,GPIOC_LED_Init.GPIO_Pin=LED_GPIO_PIN ; // 配置需要使用的引脚GPIOC_LED_Init.GPIO_Mode=GPIO_Mode_Out_PP; //配置引脚的输出的模式GPIOC_LED_Init.GPIO_Speed=GPIO_Speed_50MHz; // 配置输出的频率,这个在输入的时候不需要配置GPIO_Init(LED_GPIO_PORT,&GPIOC_LED_Init); // 使用初始化函数初始化刚刚定义的结构体,以及对应的GPIO端口}
/ E1 @8 ? t* ^. O- ncode: mian.c
8 |1 d( B1 q' I#include "stm32f10x.h"#include "led.h"#include "delay.h"/*功能的实现,注意在KEIL5中不要使用中文的空格这样将会出现错误。重点,重点,重点*/int main(){Led_funcing();// int k=5;while(1){GPIO_SetBits(LED_GPIO_PORT, LED_GPIO_PIN ); // 将对应的GPIO端口对应的引脚设置为高电平delay(10000);//延时GPIO_ResetBits(LED_GPIO_PORT, LED_GPIO_PIN); // 将对应的GPIO端口对应的引脚设置成低电平delay(10000); // 延时,}}
0 K2 k0 w7 ]$ \2 k6 b/ f; e总结:
/ H. l5 H; f7 R/ m" F' z* J9 J/ u: K1、在进行不同功能函数的编写的时候,最好在USER文件夹下面建一个对应的文件,注意有C文件,那么就一定有H文件。" x7 `% s% w+ Q( y7 o; V8 b5 D1 ?
2、在编译C文件的时候,首先在配中找到对应的H文件的文件夹目录。: [0 A8 M* A% W/ \& r+ m$ g6 H2 e
3、不同的芯片对应的库函数具有一定的差异,所以在进行引入库的时候,可能会出错误。
' g& W& `" S y4、如果在编译的时候出现相关的库函数文件无法正常的打开,那么首先需要查看是否指定相关的路径。7 o$ E2 L' j4 @6 P+ F
5、在魔术棒中的文件的输出最好都定义到自己的文件夹中,这样便于进行需要找。7 r6 z6 q$ [; F
7 z/ R4 J G4 w$ ~ 配置仿真:' G( v b' c+ Z* C
1,选择使用对应的CPU即可
) ~ `5 n& N4 \. q G
dfxgt0nh3y064029378212.png
. P$ C# f7 _* U2 T6 M
) y7 L; b8 E* ]9 ^% C
2,查看状态配置
- B5 a ~" q2 {9 r% h% O
0pqz53f0yyh64029378312.png
F9 Y( t6 \0 c9 N + O& `1 L+ |( c6 @+ `% P' X
3,仿真结果; r b8 j8 s q+ D: M* B1 b7 S' X% ?
332l4ibcifw64029378413.png
) N' }$ I- Z4 x
8 m. @0 [8 M* B8 [$ N4 Y; ~4,最后仿真的结果:时间与单片机上实际运行的时间一致,如果不一致,请查看晶振或者时钟配置。
: h$ s5 a! |. i n8 b1 X& Y==========8 m( j% ?. Y: I- m' T4 `+ O( _9 [8 H/ B
往期回顾:ST官方的STM32CubeMX培训文档( F9 d5 f2 q% G& \
小白都看得懂的STM32的DMA知识
0 v5 B I6 H- L, U) Y1 S# o( tSTM32CubeMX的外部中断的使用
- j! L! n3 S4 s3 V% R/ l& u. u% [ HADC的低功耗和阻抗问题
3 L2 P# X$ U* p9 j- v9 f利用STM32CubeMX解读时钟树
! y) g4 H$ m" ~==========原文链接:请点击阅读原文
0 {) j v) E: I- V作者:【程序梦工厂】
; f3 r& ?+ F9 F( }% @( A, @* ` }- r T7 ?! W2 o( h
6 q- f. e, D+ f9 }4 k+ {& R6 S
u55kbosryja64029378513.png
! a# X5 j/ H7 A0 J/ F, s. J1 ?0 E S' |2 |4 f6 V5 V
gilgefetag464029378613.png
3 Z' r$ `2 T1 |$ W2 I
# G" j' d# o' M7 r. E) _
sfcuhjdnn2c64029378713.png
|