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

热点内容
相机卡满了没文件夹 浏览:747
如何批量快速压缩视频 浏览:432
我的世界如何加入ice服务器 浏览:873
兄弟cnc编程说明书 浏览:204
php闪电入门教程学习 浏览:152
金岳霖逻辑pdf 浏览:938
linuxtomcat线程 浏览:77
pboc长度加数据加密 浏览:187
英雄联盟国际服手游怎么下安卓 浏览:297
程序员的思路 浏览:234
只能用命令获得的四种方块 浏览:358
怎么用命令方块防止开创造 浏览:807
扫描版的pdf 浏览:790
编程猫怎样做3d游戏 浏览:207
怎么查找云服务器上的ftp 浏览:156
我的世界服务器如何注册账号 浏览:934
统计英文字符python 浏览:424
linux信息安全 浏览:910
压缩机接线柱爆 浏览:1001
程序员自主创业 浏览:586