導航:首頁 > 操作系統 > stm單片機埠設置

stm單片機埠設置

發布時間:2022-11-01 13:55:05

① stm32怎麼設置埠

最佳答案GPIOC-.CRH&=0XFFF00FFF;//清掉這2個位原來的設置,同時也不影響其它位的設置 GPIOC-CRH|=0X00038000;//PC11輸入,PC12輸出 ; 就是按位與和按位或,...

② STM32如何重置PWM埠

最簡單的方法,檢測到按鍵按下之後,初始化PWM的定時器,輸出PWM;檢測到按鍵松開後,反初始化PWM定時器,設置PWM的IO輸出0.

voidPwmStart(void)
{
TIM3_GPIO_Config();
TIM3_Mode_Config(200);//占空比0.4設置了TIM3_Mode_Config(inti)
/*開啟TIM3*/
TIM_Cmd(TIM3,ENABLE);
}

voidPwmStop(void)
{
GPIO_InitTypeDefGPIO_InitStructure;
TIM_Cmd(TIM3,DISABLE);
TIM_DeInit(TIM3);
//GPIO配置,把PWM的IO配置為輸出,然後輸出0.
GPIO_InitStructure.GPIO_Pin=PWM_PIN;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOx,&GPIO_InitStructure);
GPIO_ResetBit(GPIOx,PWM_PIN);
}

intmain(void)
{
intnKeyState=-1;
...

while(1)
{
KEY=ReadKeyDown();
if(nKeyState!=KEY)
{
nKeyState=KEY;
if(KEY==1)
{
PwmStart();
}
else
{
PwmStop();
}
}
}
}

③ STM32H750 U盤埠設置

此開發板基於STM32STM32H750VBT6核心,可用於H7系列微處理器的評估、學習和開發等用途,板載ST-Link V2.1,調試、串口、U盤式下載三合一。


a. 板載資源明細


④ stm32串口5怎麼配置

STM32串口配置的一般步驟(庫函數)
(1)串口時鍾使能:RCC_APBxPeriphClockCmd();
GPIO時鍾使能:RCC_AHBxPeriphClockCmd();
(2)引腳復用映射:GPIO_PinAFConfig();
(3)GPIO埠模式配置:GPIO_Init(); 模式配置為GPIO_Mode_AF
(4)串口參數初始化:USART_Init();
(5)開啟中斷並且初始化NVIC(如果需要開啟中斷才需要這個步驟)
NVIC_Init();
USART_ITConfig();
(6)使能串口:USART_Cmd();
(7)編寫中斷處理函數:USARTx_IRQHandler();
(8)串口數據收發:
void USART_SendData();//發送數據到串口,DR
uint16_t USART_ReceiveData();//接收數據,從DR讀取接收的數據
(9)串口傳輸狀態獲取:
FlagStatus USART_GetFlagStatus();
void USART_ClearITPendingBit();更加詳細的可以在闖客網技術論壇進行查看的。

範例代碼:

#include"stm32f4xx.h"
#include"usart.h"

/*中斷服務函數*/
voidUSART1_IRQHandler(void)
{
uint16_trecv;

if(USART_GetFlagStatus(USART1,USART_IT_RXNE))
{
recv=USART_ReceiveData(USART1);
USART_SendData(USART1,recv);
}
}


voidUsart1_Demo_Init(void)
{
GPIO_InitTypeDefGPIOA_InitStruct;
USART_InitTypeDefUSART1_InitStruct;
NVIC_InitTypeDefNVIC_InitStruct;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);/*使能USART1時鍾*/
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);/*使能GPIOA的時鍾*/

/*將PA9和PA10映射到串口1*/
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);

/*設置GPIO埠模式*/
GPIOA_InitStruct.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;
GPIOA_InitStruct.GPIO_Mode=GPIO_Mode_AF;
GPIOA_InitStruct.GPIO_OType=GPIO_OType_PP;
GPIOA_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;
GPIOA_InitStruct.GPIO_Speed=GPIO_Speed_100MHz;
GPIO_Init(GPIOA,&GPIOA_InitStruct);

/*串口參數初始化*/
USART1_InitStruct.USART_BaudRate=115200;
USART1_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART1_InitStruct.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART1_InitStruct.USART_Parity=USART_Parity_No;
USART1_InitStruct.USART_StopBits=USART_StopBits_1;
USART1_InitStruct.USART_WordLength=USART_WordLength_8b;
USART_Init(USART1,&USART1_InitStruct);

/*使能USART1*/
USART_Cmd(USART1,ENABLE);

/*使能串口使用的中斷*/
NVIC_InitStruct.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStruct);
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
}

intmain(void)
{
/*設置中斷分組*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Usart1_Demo_Init();

while(1);
}

⑤ 關於stm32埠的輸入輸出模式配置的問題

你看看你讀出來的數據是有規律的還是每次都不一樣,或者是不是前一次寫入的數據。

一般都是需要,切換GPIO的方向的。我記得stm32的io口有復用推挽輸出。

⑥ 如何使用stm32的spi3埠

voidSPI3_Init(void)
{
GPIO_InitTypeDefGPIO_InitStructure;
SPI_InitTypeDefSPI_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
//SPI_FLASH_SPIpins:SCK--PB3
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);

//SPI_FLASH_SPIpins:MISO--PB4
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
GPIO_Init(GPIOB,&GPIO_InitStructure);

//SPI_FLASH_SPIpins:MOSI--PB5
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO_Init(GPIOB,&GPIO_InitStructure);

//SPI_FLASH_SPI_CS_PINpin:CS--PA15
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);

SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;//設置SPI單向或者雙向的數據模式:SPI設置為雙線雙向全雙工
SPI_InitStructure.SPI_Mode=SPI_Mode_Master; //設置SPI工作模式:設置為主SPI
SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b; //設置SPI的數據大小:SPI發送接收8位幀結構
SPI_InitStructure.SPI_CPOL=SPI_CPOL_High; //選擇了串列時鍾的穩態:時鍾懸空高
SPI_InitStructure.SPI_CPHA=SPI_CPHA_2Edge; //數據捕獲於第二個時鍾沿
SPI_InitStructure.SPI_NSS=SPI_NSS_Soft; //NSS信號由硬體(NSS管腳)還是軟體(使用SSI位)管理:內部NSS信號有SSI位控制
SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_16; //定義波特率預分頻的值:波特率預分頻值為16
SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB; //指定數據傳輸從MSB位還是LSB位開始:數據傳輸從MSB位開始
SPI_InitStructure.SPI_CRCPolynomial=7; //CRC值計算的多項式
SPI_Init(SPI3,&SPI_InitStructure);//根據SPI_InitStruct中指定的參數初始化外設SPIx寄存器

SPI_Cmd(SPI3,ENABLE);//使能SPI外設

}

⑦ STM8S103單片機PD4口,無論設為『0』還是『1』,都是輸出為『1』,急求助!

埠初始化:
PD_DDR = 0XFF; //輸出模式
PD_CR1 = 0XFF; //上拉
PD_CR2 = 0X00;

然後輸出高電平操作:PD_ODR = 0XFF;
輸出低電平操作:PD_ODR = 0X00;

這樣操作如還是高不低,則排除硬體原因之後就是晶元的問題了。

閱讀全文

與stm單片機埠設置相關的資料

熱點內容
怎麼批量有順序的命名文件夾 瀏覽:209
杭州程序員健身 瀏覽:17
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151