標(biāo)題: 從51單片機(jī)過(guò)渡到stm32,使盡渾身解數(shù)點(diǎn)不亮一個(gè)Led燈 [打印本頁(yè)]

作者: 吳作和    時(shí)間: 2022-1-27 23:00
標(biāo)題: 從51單片機(jī)過(guò)渡到stm32,使盡渾身解數(shù)點(diǎn)不亮一個(gè)Led燈
從51過(guò)渡到stm32,網(wǎng)上拚命收集資源,keil官網(wǎng)下載了MDK536,又下載了stm32f0xx和f1xx芯片包,沒(méi)板去街邊修車店撿個(gè)控制器回來(lái),拆開(kāi)看是f030c6t6,那就從這個(gè)開(kāi)始,于是網(wǎng)上找啊找,找到了大牛(青風(fēng))的點(diǎn)燈例程,用mdk536打開(kāi)幾十個(gè)error,庫(kù)函數(shù)版本的根本不知道錯(cuò)在哪個(gè)地方,更別提改錯(cuò)了。
作者: 吳作和    時(shí)間: 2022-1-27 23:11
本帖最后由 吳作和 于 2022-1-28 18:51 編輯

不甘心就這么放棄,于是又繼續(xù)找,找到了原子點(diǎn)燈例程,編譯零錯(cuò)誤零警告通過(guò),但是一看:mcu是f103zet6,但是我的是f030c6t6,還是無(wú)法硬件下載,只好繼續(xù)尋找,又找到一個(gè)資源,就是<<stm32從入門到精通>>中的最簡(jiǎn)單的點(diǎn)燈例子,不需要用一個(gè)庫(kù)函數(shù),也不需要導(dǎo)入一個(gè)h文件,趕緊復(fù)制粘貼到工程中來(lái),進(jìn)行編譯又是一個(gè)錯(cuò)誤,并且錯(cuò)誤位置都沒(méi)有提示,
作者: 吳作和    時(shí)間: 2022-1-27 23:17
繼續(xù)折騰,折騰到下載cubeMX,圖型化創(chuàng)建了一個(gè)點(diǎn)燈工程,用MDK5打開(kāi)后繼續(xù)編譯,還是有一個(gè)錯(cuò)誤,定位到錯(cuò)誤之處也看不懂,就這樣折騰了五六天,最后只能放棄stm32返回到c51了
作者: wetzhy    時(shí)間: 2022-1-28 08:40
其實(shí)主要還是你的編程基礎(chǔ),模塊化編譯的問(wèn)題
作者: 溫xyz    時(shí)間: 2022-1-28 10:02
我的水平只能玩玩STM8,業(yè)余玩玩,感覺(jué)STM32太深?yuàn)W了。
作者: wzmwhf    時(shí)間: 2022-1-28 11:09
完全寄存器方式的 ,和51的幾乎一樣,輸出pc13,不合適自己改一下

STM030TEST.rar

496.67 KB, 下載次數(shù): 7


作者: wzmwhf    時(shí)間: 2022-1-28 11:20
#include "stm32f0xx.h"
#include "stdint.h"
#include "stdbool.h"
#define u8 unsigned char
#define u16 unsigned int
#define u32 unsigned long
       
void delay(u16 x)
  {
        long b;
   for(b=0;b<(x*2400);b++);   
  }

void RCC_Init(void)
{   
  RCC->CFGR=0x0;
        RCC->CR |=0X01;//開(kāi)啟HSI
        while((RCC->CR&0x02)!=0x02);//HSI穩(wěn)定
        RCC->CFGR |=1<<20;//PPL*6
        RCC->CFGR &=0xffffff0f;//AHB不分頻
        RCC->CFGR &=0xfffff8ff;//PREDIV不分頻
        RCC->CFGR |=0x00008000; //HSI作為PPL輸入
        FLASH->ACR=0X32;
        RCC->CR |=1<<24;//開(kāi)啟PPL
        while((RCC->CR & 0x02000000)!=0x02000000);//等待PPL穩(wěn)定
  RCC->CFGR |=0x02;  //時(shí)鐘切換到PPL
        while((RCC->CFGR & 0x0c)!=0x8);//系統(tǒng)時(shí)鐘已經(jīng)切換到PPL
}       

void GPIO_Init(void)
{
   RCC->AHBENR |= 1<<19; //開(kāi)啟GPIOC時(shí)鐘
   GPIOC->MODER |= 1<<26;  //PC13通用輸出
   GPIOC->OTYPER |= 1<<13;  //PC13開(kāi)漏輸出
         GPIOC->OSPEEDR |= 3<<26; //PC13高速輸出   
}
int main()
{         
        RCC_Init() ;
        GPIO_Init();
       
  while(1)
  {
               
        delay(500);
        GPIOC->BSRR=0x2000;
        delay(500);
        GPIOC->BRR|=0X2000;       
               
  }
}
作者: qsgang    時(shí)間: 2022-1-28 13:52
用STM32CUBEMX ,容易的很
作者: zhai1995    時(shí)間: 2022-1-28 15:49
點(diǎn)燈大師你好,  剛開(kāi)始可以先學(xué)這配置底層寄存器來(lái)點(diǎn)燈。
作者: 吳作和    時(shí)間: 2022-1-28 18:45
謝謝7樓的老師,我下載代碼去試試。關(guān)鍵是我剛?cè)腴T,工程模板都不會(huì)創(chuàng)建,更不會(huì)移植,網(wǎng)上面F0xx的例程又少,都是F1xx的例程,請(qǐng)問(wèn)怎樣把F1xx例程移植到F0xx中來(lái)。
作者: zhxzhx    時(shí)間: 2022-1-28 21:20
你這不是單片機(jī)不會(huì)用,你是開(kāi)發(fā)環(huán)境不會(huì)用
作者: 吳作和    時(shí)間: 2022-1-29 08:57
的確是MDK不會(huì)用,移植過(guò)來(lái)的代碼中的c ,s文件都要重新添加,還有h文件也要重新導(dǎo)入,編譯調(diào)試要重新配置,謝謝老師們燈已經(jīng)點(diǎn)亮了
作者: wuyize    時(shí)間: 2022-1-29 09:35
吳作和 發(fā)表于 2022-1-28 18:45
謝謝7樓的老師,我下載代碼去試試。關(guān)鍵是我剛?cè)腴T,工程模板都不會(huì)創(chuàng)建,更不會(huì)移植,網(wǎng)上面F0xx的例程又 ...

直接置換輸出引腳高低電平就行了
作者: hujj    時(shí)間: 2022-1-30 09:09
吳作和 發(fā)表于 2022-1-29 08:57
的確是MDK不會(huì)用,移植過(guò)來(lái)的代碼中的c ,s文件都要重新添加,還有h文件也要重新導(dǎo)入,編譯調(diào)試要重新配置 ...

已經(jīng)點(diǎn)亮了LED,說(shuō)明您已經(jīng)入門了。再返回重新用STM32Cube新建一個(gè)項(xiàng)目前生成代碼框架,添加控制LED引腳電平的代碼,也許您就會(huì)覺(jué)得非常容易。
作者: hujj    時(shí)間: 2022-1-30 09:11
之前不成功的原因大概有兩個(gè):一是芯片的型號(hào)沒(méi)有選擇正確;二是LED引腳與代碼中有差異。
作者: fqc168    時(shí)間: 2022-2-14 14:58
主要還是你的基礎(chǔ) 比較差,或者說(shuō)你很想省錢,,直接在某一個(gè)寶花個(gè)幾十塊買一個(gè)最基本的模塊回來(lái)學(xué)習(xí),,,需要你折騰那么多嗎?
作者: wufa1986    時(shí)間: 2022-2-14 15:16
這說(shuō)明你的資料有問(wèn)題
作者: rundstedt    時(shí)間: 2022-2-14 21:33
有什么錯(cuò)誤貼出來(lái)啊,光說(shuō)有錯(cuò)等于沒(méi)說(shuō)。
作者: Kj102069    時(shí)間: 2022-2-15 10:43
先確定一點(diǎn),咱們的程序框架對(duì)不對(duì),如果我記得沒(méi)錯(cuò),030是M0內(nèi)核,103是M3內(nèi)核,再其次,可能是程序處理出的問(wèn)題,32單片機(jī)想啟動(dòng)IO口得給IO口“供電”、即啟動(dòng)對(duì)應(yīng)的APB電源,最后的最后,51的IO口如果不考慮很多,可以直接置0置1直接使用,而32的需要你對(duì)每個(gè)IO使用時(shí)先配置。初學(xué)可以下載別人的例程,看他的main.C里有什么,為什么加這句話?匆曨l也是很好的學(xué)習(xí)途徑,用多32會(huì)發(fā)現(xiàn)很多不同于51的優(yōu)點(diǎn)
作者: ly1972001    時(shí)間: 2022-2-15 15:04
按14樓的搞一下,樓主就真的入門了。
作者: 韓晗    時(shí)間: 2022-2-17 11:43
STM32強(qiáng)大在了生態(tài)上,但是也造成了從51轉(zhuǎn)32的人不適應(yīng)寫個(gè)簡(jiǎn)單的程序會(huì)感覺(jué)很麻煩反而沒(méi)有51上實(shí)現(xiàn)簡(jiǎn)單,我剛轉(zhuǎn)的時(shí)候也是這樣子建議是先購(gòu)買現(xiàn)成的開(kāi)發(fā)板(野火、正點(diǎn)原子)跟著例程熟悉一下32的整體程序架構(gòu)和生態(tài)之后就會(huì)感覺(jué)很舒服啦。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1