久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stm32使用寄存器做一個流水燈
[打印本頁]
作者:
yea1
時間:
2021-6-28 11:23
標題:
stm32使用寄存器做一個流水燈
使用寄存器方式,用stm32做一個流水燈。
硬件:stm32f103R6,一個按鍵,5個LED燈。
功能:按鍵可以實現左移、右移、從中間往兩邊移動。
原理圖:
1.png
(70.27 KB, 下載次數: 90)
下載附件
2021-6-28 15:05 上傳
波形仿真:
代碼:
#include "stm32f10x.h"
/**
* @brief 延時函數
* @param time :X ms
* @retval none
*/
void delay_ms(u16 time)
{
u16 i=0;
while(time--)
{
i=12000; //自己定義
while(i--) ;
}
}
/**
* @brief LED初始化
* @param none
* @retval none
*/
void LED_Init(void)
{
RCC->APB2ENR|=1<<4; //使能PORTC時鐘
GPIOC->CRL &= 0xFFF00000;
GPIOC->CRL |= 0x00033333;//PC0-PC4 推挽輸出
GPIOC->ODR |= 0x0000001F; //PC0-PC4 輸出高,燈關閉狀態
}
/**
* @brief 按鍵初始化
* @param none
* @retval none
*/
void KEY_Init(void)
{
RCC->APB2ENR|=1<<3; //使能PORTB時鐘
GPIOB->CRL &= 0xFFFFF000;
GPIOB->CRL |= 0x00000888; //PB0-PB2 上拉輸入
GPIOB->ODR |= 1<<0;
}
/**
* @brief 流水燈左移
* @param none
* @retval none
*/
void LED_MoveLeft(void)
{
GPIOC->ODR |= 0x0000001F; //燈全部關閉
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFEF; //右邊第一個LED亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFF7; //右邊第二個LED亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFFB; //右邊第三個LED亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFFD; //右邊第四個LED亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFFE; //右邊第五個LED亮
delay_ms(10);
}
/**
* @brief 流水燈右移
* @param none
* @retval none
*/
void LED_MoveRight(void)
{
GPIOC->ODR |= 0x0000001F; //燈全部關閉
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFFE; //右邊第五個LED亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFFD; //右邊第四個LED亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFFB; //右邊第三個LED亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFF7; //右邊第二個LED亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFEF; //右邊第一個LED亮
delay_ms(10);
}
/**
* @brief 流水燈從中間往兩邊移動
* @param none
* @retval none
*/
void LED_MoveToSide(void)
{
GPIOC->ODR |= 0x0000001F; //燈全部關閉
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFFB; //中間燈亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFF1; //中間燈亮
delay_ms(10);
GPIOC->ODR &= 0xFFFFFFE0; //最外燈亮
delay_ms(10);
}
/**
* @brief 主函數
* @param none
* @retval none
*/
int main(void)
{
u16 t;
static u8 i=0;
LED_Init(); //LED初始化
KEY_Init(); //按鍵初始化
while(1)
{
t=GPIOB->IDR;
if(!(t & 0x0001))
{
i++;
if(i>3)
i=0;
switch(i)
{
case 1: LED_MoveLeft();//左移
break;
case 2: LED_MoveToSide();//兩邊移
break;
case 3:LED_MoveRight();//右移
break;
default:break;
}
}
//若要使用keil的邏輯示波器,取消延時注釋,更方便觀測波形
//delay_ms(200); //延時200ms
}
}
復制代碼
作者:
heikeji2021
時間:
2021-6-29 12:03
現在主要芯片太貴
作者:
heikeji2021
時間:
2021-6-29 12:04
能不能用8腳芯片做?
作者:
parkine
時間:
2021-6-30 18:10
能不能用8腳芯片做?
作者:
heikeji2021
時間:
2021-6-30 22:23
編譯出錯,不會搞呀
作者:
512-DZ
時間:
2021-7-4 12:16
能不能用8腳芯片做?
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
免费网站www
|
久久激情视频
|
在线观看日韩欧美
|
国产激情视频在线
|
久久免费视频网站
|
人人草人人爽
|
国产小视频在线
|
欧美色图在线视频
|
国产91免费
|
91视频精品
|
欧美日韩国产在线播放
|
天堂中文在线资源
|
四虎影院在线播放
|
亚洲精品一二三
|
特级特黄aaaa免费看
|
av在线播放网址
|
国产这里只有精品
|
欧美91视频
|
青青草视频在线观看
|
丁香激情五月
|
欧美三级韩国三级日本三斤在线观看
|
黄色大片在线免费观看
|
长河落日
|
成人扒开伸进免费观看
|
国产亚洲视频在线观看
|
免费在线看a
|
97在线免费观看
|
日日操天天操
|
精品久久久久久久久久久久久
|
欧美黄色片视频
|
a级片网址
|
免费视频一区二区
|
国产日韩精品在线
|
羞羞在线
|
第一福利丝瓜av导航
|
午夜成人影片
|
三级视频在线
|
婷婷狠狠爱
|
日本免费一级片
|
国产日韩免费
|
精品国产欧美一区二区三区成人
|