久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
求STM32串口+按鍵一起用的狀態機
[打印本頁]
作者:
herohuang
時間:
2023-6-26 11:39
標題:
求STM32串口+按鍵一起用的狀態機
跪求STM32串口+按鍵一起用的狀態機,最好有注釋的,方便移植的,本人小白請多多關照
作者:
yzwzfyz
時間:
2023-6-26 17:18
狀態機長什么樣子?
作者:
飛云居士
時間:
2023-6-26 17:22
以下是一個使用狀態機來處理STM32串口和按鍵同時使用的示例代碼,注釋已添加在代碼中:```c#include "stm32f4xx.h"// 定義狀態機的狀態typedef enum { STATE_IDLE, // 空閑狀態 STATE_RECEIVING // 接收狀態} State;// 定義按鍵狀態typedef enum { BUTTON_RELEASED, // 按鍵釋放狀態 BUTTON_PRESSED // 按鍵按下狀態} ButtonState;State currentState = STATE_IDLE; // 當前狀態ButtonState buttonState = BUTTON_RELEASED; // 按鍵狀態uint8_t receivedData;// 按鍵初始化void buttonInit(void) { RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOA, &GPIO_InitStruct);}// 串口初始化void uartInit(void) { RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStruct); USART_InitTypeDef USART_InitStruct; USART_InitStruct.USART_BaudRate = 9600; USART_InitStruct.USART_WordLength = USART_WordLength_8b; USART_InitStruct.USART_StopBits = USART_StopBits_1; USART_InitStruct.USART_Parity = USART_Parity_No; USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStruct.USART_Mode = USART_Mode_Rx; USART_Init(USART2, &USART_InitStruct); USART_Cmd(USART2, ENABLE);}// 處理當前狀態void handleState(void) { switch (currentState) { case STATE_IDLE: // 空閑狀態,等待按鍵按下 if (buttonState == BUTTON_PRESSED) { currentState = STATE_RECEIVING; } break; case STATE_RECEIVING: // 接收狀態,等待接收到數據 if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == SET) { receivedData = USART_ReceiveData(USART2); // 處理接收到的數據 // ... currentState = STATE_IDLE; } break; }}int main(void) { buttonInit(); uartInit(); while (1) { // 讀取按鍵狀態 if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == RESET) { buttonState = BUTTON_PRESSED; } else { buttonState = BUTTON_RELEASED; } // 處理當前狀態 handleState(); }}```希望這可以幫助你開始使用狀態機處理STM32串口和按鍵的操作。請注意,你可能需要根據你的具體應用場景進行適當的修改和調整。
作者:
herohuang
時間:
2023-7-4 06:30
大神你這代碼讓人暈啊,能不能給個完整一點的,謝謝了
作者:
bxy2
時間:
2023-7-5 14:04
如果用Labview來寫比較簡單,選擇串口號,按鍵實現切換狀態,用選擇結構和while結構
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
色呦呦在线
|
成人一级片在线观看
|
中文字幕日韩一区
|
国产视频福利在线观看
|
久草热在线
|
中文字幕一区在线观看视频
|
国产精品久久久久久婷婷天堂
|
91精品久久久久久久久久入口
|
91在线视频免费观看
|
日韩性生活网
|
精品二区
|
91亚洲国产成人精品一区二三
|
亚洲欧洲日本国产
|
日日干夜夜操天天操
|
激情五月婷婷丁香
|
国产精品18久久久久久白浆动漫
|
久久精品亚洲一区二区三区浴池
|
亚洲日本欧美日韩高观看
|
91国内外精品自在线播放
|
欧美中文一区
|
欧美一区免费
|
欧美美女爱爱视频
|
午夜精品一区二区三区在线
|
伊人中文字幕
|
日韩在线免费视频
|
日韩精品一区二区在线
|
亚洲午夜精品视频
|
不卡一区二区三区四区
|
日本在线免费观看
|
精品一区二区电影
|
一级特黄在线
|
www.国产精品
|
www.日日夜夜
|
毛片免费看
|
亚州精品天堂中文字幕
|
精品一区二区三区av
|
在线永久看片免费的视频
|
久久久久久久久淑女av国产精品
|
综合激情av
|
久久不卡
|
日韩视频1
|