RXD PA10->TXDvoid KEY44_Init(void){ PA0~PA3為推挽式輸出GPIO_Init" />

娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月14日(星期二)

正在發生

2019年01月14日 | STM32矩陣鍵盤輸入通過串口三輸出

發布者:幸福自在 來源: eefocus關鍵字:STM32  矩陣鍵盤輸入  串口 手機看文章 掃描二維碼
隨時隨地手機看文章

配置矩陣鍵盤輸入


//PA0~PA3為推挽式輸出

//PA4~PA7為上拉輸入

//PA9->RXD  PA10->TXD

 

void  KEY44_Init(void)

{

//PA0~PA3為推挽式輸出

 

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1 |GPIO_Pin_2 |GPIO_Pin_3 ;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOA, &GPIO_InitStructure);


//PA4~PA7為上拉輸入

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 |GPIO_Pin_5  |GPIO_Pin_6 |GPIO_Pin_7;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;

GPIO_Init(GPIOA, &GPIO_InitStructure);

}

 

unsigned char key44_Scan(void)

{

H_1 = 0;

H_2 = 1;

H_3 = 1;

H_4 = 1;

 

if(L_1 == 0)

{

delay_ms(10);

if(L_1 == 0)

{

while(!L_1);

return 1;

}

}

if(L_2 == 0)

{

delay_ms(10);

if(L_2 == 0)

{

while(!L_2);

return 2;

}

}

if(L_3 == 0)

{

delay_ms(10);

if(L_3 == 0)

{

while(!L_3);

return 3;

}

}

if(L_4 == 0)

{

delay_ms(10);

if(L_4 == 0)

{

while(!L_4);

return 4;

}

}

 

H_1 = 1;

H_2 = 0;

H_3 = 1;

H_4 = 1;

 

if(L_1 == 0)

{

delay_ms(10);

if(L_1 == 0)

{

while(!L_1);

return 5;

}

}

if(L_2 == 0)

{

delay_ms(10);

if(L_2 == 0)

{

while(!L_2);

return 6;

}

}

if(L_3 == 0)

{

delay_ms(10);

if(L_3 == 0)

{

while(!L_3);

return 7;

}

}

if(L_4 == 0)

{

delay_ms(10);

if(L_4 == 0)

{

while(!L_4);

return 8;

}

}

 

H_1 = 1;

H_2 = 1;

H_3 = 0;

H_4 = 1;

 

if(L_1 == 0)

{

delay_ms(10);

if(L_1 == 0)

{

while(!L_1);

return 9;

}

}

if(L_2 == 0)

{

delay_ms(10);

if(L_2 == 0)

{

while(!L_2);

return 10;

}

}

if(L_3 == 0)

{

delay_ms(10);

if(L_3 == 0)

{

while(!L_3);

return 11;

}

}

if(L_4 == 0)

{

delay_ms(10);

if(L_4 == 0)

{

while(!L_4);

return 12;

}

}

 

H_1 = 1;

H_2 = 1;

H_3 = 1;

H_4 = 0;

 

if(L_1 == 0)

{

delay_ms(10);

if(L_1 == 0)

{

while(!L_1);

return 13;

}

}

if(L_2 == 0)

{

delay_ms(10);

if(L_2 == 0)

{

while(!L_2);

return 14;

}

}

if(L_3 == 0)

{

delay_ms(10);

if(L_3 == 0)

{

while(!L_3);

return 15;

}

}

if(L_4 == 0)

{

delay_ms(10);

if(L_4 == 0)

{

while(!L_4);

return 16;

}

}

return 0;

}

配置USART3


void USART3_Init(u32 bound)

{

// PB10 & PB11

GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;


//開啟GPIOB 和 復用功能時鐘

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);

//開啟USART3的時鐘

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);


//PB10 ->Tx 配置為復用推挽式輸出 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOB, &GPIO_InitStructure);


//PB11 ->Rx 配置為浮空輸入

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOB, &GPIO_InitStructure);

 

//配置串口

USART_InitStructure.USART_BaudRate = bound;

USART_InitStructure.USART_WordLength = USART_WordLength_8b;

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_Parity = USART_Parity_No;

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;

USART_Init(USART3, &USART_InitStructure);

 

USART_Cmd(USART3,ENABLE);


USART_GetFlagStatus(USART3,USART_FLAG_TC);//防止第一個字符被吞

}


主函數


u8  key_num = 0;

 

u8 i = 0;

 

int main(void)

KEY44_Init();

delay_init();

USART3_Init(115200);

while(1)

{

key_num = key44_Scan(); 

if(key_num != 0)

{

USART_SendData(USART3,key_num);

while(USART_GetFlagStatus(USART3,USART_FLAG_TC) == 0);

 

}

}

}


關鍵字:STM32  矩陣鍵盤輸入  串口 引用地址:STM32矩陣鍵盤輸入通過串口三輸出

上一篇:STM32學習筆記一一USART
下一篇:STM32+按鍵調控PWM輸出+串口輸出占空比

0

推薦閱讀

CES2018已經落下帷幕,但人們對科技產品的關注仍熱度不減。1月12日,知名科技媒體The Vegre撰文對CES上的諸多產品、技術打分評獎,并選出他們心中的十大最佳。我們一同來看看吧。1、最佳展示:屏下指紋。Vivo在美國CES2018展會上展出了能夠量產的采用屏下指紋識別技術的手機。其使用的是Synaptics(新思國際)最近發布的一款光學傳感器,是通過OLED顯示器...
利用FPGA虛擬化突破時空限制 在傳統的FPGA開發模型中,使用者通常使用硬件描述語言(HDL)對應用場景進行建模,然后通過特定的FPGA開發工具將硬件模型映射到FPGA上,最終生成可以運行的FPGA映像。 這種開發模式的另外一個主要缺點是,FPGA只能由單一用戶開發和使用,而與應用場景、FPGA的產品種類等無關。比如對于一個對資源需求不大、而且不需要連續運行...
紋波是電源的核心指標,但如何準確測量紋波確實一個被廣泛忽略的問題。也許您認為不就是示波器交流耦合,然后把探頭點在電源上嘛?事實遠非如此,本文為您呈現紋波測試的正確方式。探頭的選擇在十幾年前,很多公司的電源測試標準中都有明確的規定,要求使用1:1 探頭進行測量。因為這種探頭不會損失示波器的測量檔位,比如示波器原來最小檔位是2mv/div,使...
Maxim Integrated Products, Inc 近日宣布推出DS28E40 DeepCover?汽車應用安全認證器,通過對汽車零部件進行安全認證,確保其為原裝正品,幫助設計師提高汽車的安全性、可靠性和數據完整性,同時降低設計復雜度并縮短軟件開發時間。在一個關鍵系統中,只有正品部件才能提供最高安全性和可靠性。作為Maxim Integrated滿足AEC-Q100 1級標準的汽車系...

史海拾趣

問答坊 | AI 解惑

黃花905c,908哪個比較好,比較耐用?

黃花905c,908哪個比較好,比較耐用? 我現在的30W外熱烙鐵,焊接還是比較好用的,可是有時想拆EPSON的電路板就焊不化了,把烙鐵放在上面很長時間,錫化了,剛一拿走,就又凝固了; 所以,想選個可以調溫的,就看上了 黃花905c,908哪個比較好,比 ...…

查看全部問答∨

關于wince掛機鍵的問題

各位,在wince上發現在程序運行過程中按下掛機鍵會把程序退出,我現在想實現按下掛機鍵程序不退出只是切換到后臺。這個應該怎么實現呢?謝謝大家…

查看全部問答∨

如何在WinCE里加入 ping命令?

如何在WinCE里加入 ping命令?…

查看全部問答∨

怎樣提高Windows的數據采集速度?

我現在在用工控機做實時控制,從外界數據采集卡采集到的數據怎樣才能更快地讀到系統內存中呢?最好在100us之內。 Windows定時器的定時精度只有55ms,多媒體的也只有7ms,如果用QueryPerformanceFrequency()和QueryPerformanceCounter(),他們一直 ...…

查看全部問答∨

看看大家有沒有遇到I2C的這個問題

使用固件庫自帶的例程libraryFWLibexamplesI2CM24C08_EEPROMi2c_ee.c文件編寫24LC02代碼:系統時鐘:72M, PCK1時鐘:36M, I2C時鐘:100K  I2C_EE_Init();    I2C_EE_BufferWrite(Tx1_Buffer,  ...…

查看全部問答∨

STM32的ADC部分的確需要注意很多

至于是不是BUG,現在沒必要爭論.但是至少需要ST修改文檔了.ADC與DMA合起來用有隱患!這問題,至少ST的文檔中對ADC和DMA聯合使用部分介紹的不足.在壓力測試中,DMA有可能出現所謂"錯位"問題,例如將ad0,ad1,ad2規則轉換時,可能發生丟失一次ad數 ...…

查看全部問答∨

請教:430的AD采樣控制PWM寬度,進不了中斷

本帖最后由 dontium 于 2015-1-23 13:42 編輯 大家好,我想輸入一個模擬信號,當電壓升高,輸出的PWM占空比就變大。但是程序進不了中斷,請幫忙看看這段程序,謝謝。程序是改別人的,剛開始學,見笑了 #include "msp430x14x.h" #define ucha ...…

查看全部問答∨

seed-xds560plus連接不上目標板

仿真器:seed-xds560plus 開發板:基于tms320vc5402    (經測試無損壞) 操作系統:Windows xp sp3 開發環境:ccs3.3 配置過程:                       ...…

查看全部問答∨

覆銅 圓形

怎么畫圓形的覆銅區?????多謝!!…

查看全部問答∨

LED研發高級工程師

工作地點在鎮江丹陽,這是一家民營企業,老板是很nice的人,待遇不錯,提供住宿。 1. 電子類相關專業,本科及以上學歷2. 有5年以上電子產品開發設計經驗, 3年以上的項目管理經驗.3. 有LED燈模組、開關電源或車載逆變器等相關產品設計經驗者優佳;4 ...…

查看全部問答∨
小廣播
添点儿料...
无论热点新闻、行业分析、技术干货……
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 峨山| 福泉市| 满洲里市| 嫩江县| 高雄市| 宣武区| 洱源县| 新泰市| 吴旗县| 安仁县| 敖汉旗| 马山县| 泰宁县| 荥经县| 宜君县| 靖宇县| 东方市| 崇礼县| 柞水县| 同江市| 永城市| 江川县| 潜山县| 奎屯市| 德惠市| 定南县| 彭山县| 革吉县| 左权县| 梨树县| 盘锦市| 罗田县| 得荣县| 永寿县| 望城县| 龙游县| 岳西县| 怀安县| 万山特区| 临桂县| 长乐市|