日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

STM32 基于正电原子开发板,改换芯片为STM32F103R6,Proteus仿真的一些问题

發布時間:2023/12/10 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32 基于正电原子开发板,改换芯片为STM32F103R6,Proteus仿真的一些问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在學STM32,網上收集了一些信息,最后用正點原子的開發板來學習。

MDK的配置請參考原子哥的資料,我主要的學習方法是參考原子哥的開發板與實驗案例,改換不一樣的芯片,也要做出的一樣的效果。但在最基礎的入門就遇到了不少問題。

入門的流水燈發現更改芯片后,用原子哥的程序在Proteus仿真過程中,LED燈會非常快速的閃煉,我原以為可能是原子哥用的是外部晶振,而我是用HIS導致的,但用了外部晶振后,結果還是一樣。最后我自己寫了一個延遲函數,就可以正常點亮LED,而且延遲也正常。

下圖是無外部晶振LED快速閃爍的圖片

下圖是帶外部晶振LED快速閃爍的圖片

Main.c

#include "led.h" #include "delay.h" #include "sys.h"/* 這個是我自己寫的延遲函數 void Delay(u32 t) //延時函數 {u16 i;while(t--)for(i=0;i<1000;i++); } */int main(void) {delay_init(); //延時函數初始化LED_Init(); //初始化與 LED 連接的硬件接口while(1){ LED0=0;LED1=1;//Delay(500); //調自己寫的延遲函數delay_ms(500); //延時 500msLED0=1;LED1=0;//Delay(500); //調自己寫的延遲函數delay_ms(500); //延時 500ms} }當用改用自己的延遲函數時個LED可以正常燈亮

LED.c

#include "led.h"void LED_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能 PC端口時鐘GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //LED0-->PC.0 LED1-->PC.1端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度為 50MHzGPIO_Init(GPIOC, &GPIO_InitStructure); //初始化 GPIOC.0 GPIOC.1GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1); }

下面是改用自己的延遲函數可以正常點亮LED,延遲也正常。


現在問題是為什么調用正點原子的延遲函數不能正常工作呢?

請各位大神賜教!!!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的STM32 基于正电原子开发板,改换芯片为STM32F103R6,Proteus仿真的一些问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。