如題。
實驗器材:
戰艦STM32F103開發板V3版本
實驗目的:
學習GPIO作為輸入的使用
硬件資源:
1,DS0(連接在PB5),DS1(連接在PE5)
2,蜂鳴器(連接在PB8)
3,按鍵KEY0(PE4)/KEY1(PE3)/KEY2(PE2)/KEY_UP(PA0,也稱之為WK_UP)
實驗現象:
本實驗,通過開發板上載有的4個按鈕(KEY_UP、KEY0、KEY1和KEY2),來控制板
上的2個LED(DS0和DS1)和蜂鳴器,其中WK_UP控制蜂鳴器,按一次叫,再按一次
停;KEY2控制DS0,按一次亮,再按一次滅;KEY1控制DS1,效果同KEY2;KEY0則
同時控制DS0和DS1,按一次,他們的狀態就翻轉一次。
注意事項:
無.
0.png (24.77 KB, 下載次數: 115)
下載附件
2017-6-6 03:15 上傳
0.png (28.39 KB, 下載次數: 102)
下載附件
2017-6-6 03:15 上傳
單片機源程序如下:
- #include "sys.h"
- #include "usart.h"
- #include "delay.h"
- #include "led.h"
- #include "key.h"
- #include "exti.h"
- #include "spi.h"
- #define SPI_DR_Addr (*((u16*)0X4000380C))
- void SPI_32(u8 *pdata,u8 *buff,u32 leng)
- {
- // u8 mrece[10];
- while(leng--)
- {
- *buff=SPI2_ReadWriteByte(*pdata);
- // SPI2_ReadWriteByte(*pdata);
- // *buff=SPI1_ReadByte();
- // mrece[10-leng]=SPI1_ReadWriteByte(*buff);
- pdata++;
- buff++;
- }
- }
- int main(void)
- {
- // u8 tbuff[]={3,4,5,6,7,8,9,0,1,2};
- // u8 rbuff[10];
- Stm32_Clock_Init(9); //系統時鐘設置
- //uart_init(72,115200); //串口初始化為115200
- delay_init(72); //延時初始化
- //LED_Init(); //初始化與LED連接的硬件接口
- //KEY_Init();
- SPI2_Init();
- SPI2_SetSpeed(SPI_SPEED_256);
-
- while(1)
- {
- //KEY_Scan();
- //if(KEY1==0)
- //{
- // SPI_32(tbuff,rbuff,10);
- SPI2_ReadWriteByte(0X09);
- // a=SPI1_ReadByte();
- // SPI1_ReadWriteByte(a);
-
- // SPI2_ReadWriteByte(0X02);
- //
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
Keil代碼下載:
SPI.7z
(386.03 KB, 下載次數: 26)
2022-12-15 17:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|