stm32是世界上最簡單的

深大第一帅er發表於2024-10-19

例一

include "stm32f10x.h"

include "generic.h"

//1.開啟時鐘 2.配置 3.初始化
例子:點gpioa的第一個燈
void pin_init(GPIO_TypeDef* GPIOx, ,uint16_t GPIO_Pin,GPIOMode_TypeDef GPIO_Mode){ //直接呼叫這個函式
if(GPIOx=GPIOA)RCC_APB2PeriphClockCdm(RCC_APB2Perph_GPIOA,ENABLE);//開啟時鐘
else if(GPIOx=GPIOB)RCC_APB2PeriphClockCdm(RCC_APB2Perph_GPIOB,ENABLE);
else if(GPIOx=GPIOC)RCC_APB2PeriphClockCdm(RCC_APB2Perph_GPIOC,ENABLE);
else if(GPIOx=GPIOD)RCC_APB2PeriphClockCdm(RCC_APB2Perph_GPIOD,ENABLE);

GPIO_InitTypeDef gpio_init_struct;//配置
gpio_init_struct.GPIO_Mode= GPIO_Mode_Out_PP;//結構體中ctrl+f檢視列舉
gpio_init_struct.GPIO_Speed= GPIO_Speed_50MHz;
gpio_init_struct.GPIO_Pin= GPIO_Pin_1;

GPIO_Init(GPIO,&gpio_init_struct);//初始化
}

int main()
{
//RCC_APB2PeriphClockCdm(RCC_APB2Perph_GPIOA,ENABLE);//開啟時鐘

//GPIO_InitTypeDef gpio_init_struct;//配置
//gpio_init_struct.GPIO_Mode= GPIO_Mode_Out_PP;//結構體中ctrl+f檢視列舉
//gpio_init_struct.GPIO_Speed= GPIO_Speed_50MHz;
//gpio_init_struct.GPIO_Pin= GPIO_Pin_1;

//GPIO_Init(GPIOA,&gpio_init_struct);//初始化
pin_init(GPIO_TypeDef* GPIOA ,uint16_t GPIO_Pin_1,GPIO_Mode_Out_pp);
GPIO_WriteBit(GPIOA,GPIO_Pin_1,(Bitction)0);

while(1)
{

}
}

例二
int adcnum

//ADC採集資料->while->adcnumn(會佔用while時間傳入adcnum)
//ADC->DMA->adcnum(經過DMA直接傳入adcnum)
void MyDMA_Init(uint32_t adcchanl1, uint32_t adcnum,uint16_t times);

//void MyDMA_Init(uint32_t Add_Periph, uint32_t Add_Memory,uint16_t times);//外設地址,記憶體地址,時間
//void MyDMA_Transfer_once(void);

相關文章