1.軟體及工程環境搭建
- 就不介紹了,可以直接用現成的
鏈接:https://pan.baidu.com/s/1GaSYpNm6yh-lZZmqRdXxvQ
提取碼:dy63 - 相關庫檔案
鏈接:https://pan.baidu.com/s/19PLYdtiuSoZZGdVD7_tumQ
提取碼:mrw8
2.GPIO實作led呼吸燈
- 首先添加一下庫函式

- 看一下開發板原理圖


得到對應的PC10,PC11,PC13 - 什么都不要說直接上代碼
- 先LED初始化
void LEDInit(void)
{
GPIO_InitTypeDef GPIO;//自定義GPIO
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//外部時鐘C使能
GPIO.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_10;//選擇引腳
GPIO.GPIO_Mode = GPIO_Mode_OUT;//選擇模式
GPIO.GPIO_OType = GPIO_OType_PP;//選擇型別暫存器
GPIO.GPIO_Speed = GPIO_Speed_50MHz;//選擇速度
GPIO.GPIO_PuPd = GPIO_PuPd_NOPULL;//選擇上下拉
GPIO_Init(GPIOC,&GPIO);//寫入暫存器
GPIO_SetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_10);//輸出高電頻關燈
//GPIO_ResetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_10); //輸出低電頻開燈 //輸出低電頻關燈
}
- 給一個自定義的延遲函式
void dalyg(int n)
{
int i;
for(i=0;i<n;i++);
}
- 實作呼吸燈功能
void ledbreath(int t,int i)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_13);
GPIO_SetBits(GPIOC,GPIO_Pin_13);
GPIO_ResetBits(GPIOC,GPIO_Pin_11);
GPIO_SetBits(GPIOC,GPIO_Pin_11);
GPIO_ResetBits(GPIOC,GPIO_Pin_10);
GPIO_SetBits(GPIOC,GPIO_Pin_10);
dalyg(i);
GPIO_SetBits(GPIOC,GPIO_Pin_13);
GPIO_ResetBits(GPIOC,GPIO_Pin_13);
GPIO_SetBits(GPIOC,GPIO_Pin_11);
GPIO_ResetBits(GPIOC,GPIO_Pin_11);
GPIO_SetBits(GPIOC,GPIO_Pin_10);
GPIO_ResetBits(GPIOC,GPIO_Pin_10);
dalyg(t-i);
}
- 主函式呼叫相關的函式
LEDInit();
int DeyTim=8000,i;
while(1)
{
for(i=1;i<DeyTim;i+=1)//這兩個引數隨便調,只要效果明顯就行了,先開始i增加占空比在增大
{
ledbreath(DeyTim,i);
}
dalyg(100);
for(i=DeyTim;i>1;i-=1)//后占空比開始減小
{
ledbreath(DeyTim,i);
}
dalyg(100);
}
- 到此完美實作led呼吸燈,最后感謝大家閱讀,如果需要其他相關資料請聯系我,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/266730.html
標籤:其他
上一篇:毫米波雷達使用仿真學習實體
