导航:首页 > 操作系统 > 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单片机端口设置相关的资料

热点内容
65压缩机多少钱 浏览:120
同类型服务app如何脱颖而出 浏览:762
mtm月线金叉选股预警公式源码 浏览:227
javasapwebservice 浏览:709
程序员老了去做什么 浏览:404
linux小括号 浏览:773
已加密的u盘怎么清空 浏览:433
怎么拿到服务器权限 浏览:192
延时摄影app如何保存 浏览:195
程序员转正申请职级怎么写 浏览:874
closelinuxsocket 浏览:268
程序员0基础该怎么学 浏览:276
android支付宝支付原理 浏览:729
股票指标加密可以导入 浏览:935
怎样算法排卵期 浏览:803
小米如何加密第三方软件 浏览:232
安卓工程师有什么证书 浏览:788
小米相册截屏文件夹目录 浏览:552
scum怎么查看服务器的ip地址 浏览:457
程序员面试要那么长时间吗 浏览:63