怎么让stm32某个脚输出高/低电平?

比如51中只要
sbit a=P1^0;
........
a=0;
51还没学好,但是要用到stm32,最简单的是怎么写的?看了很多例程,都看不懂。。。

库函数有
GPIO-SetBits(GPIOC,GPIO-Pin-3)
或者GPIO-Reset(……)命令,也比较简单

开漏输出就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候。 推挽输出就是单片机引脚可以直接输出高电平电压。

STM32是基于ARM® Cortex® M 处理器内核的 32位闪存微控制器,为MCU用户开辟了一个全新的自由开发空间,并提供了各种易于上手的软硬件辅助工具。STM32 MCU融高性能、实时性、数字信号处理、低功耗、低电压于一身,同时保持高集成度和开发简易的特点。业内最强大的产品阵容,基于工业标准的处理器,大量的软硬件开发工具,让STM32单片机成为各类中小项目和完整平台解决方案的理想选择。按内核架构分为不同产品系列。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-02
STM32的M3内核跟51是不一样的,主要是初始化部分有相互依存关系,务必注意。
一般来说应当先配置时钟树、开启“某个管脚”所在端口外设、配置端口给你的“某个管脚”设定合理的电气属性。最后在主程序里操作相关端口的寄存器,将该管脚拉高/拉低/翻转即可。追问

直接写PAout(1)=1这样行吗?需要在前面定义或者加什么头文件吗?

追答

如果你加了STM32的驱动库文件,那么就可以直接调用封装好的接口函数了。

第2个回答  2016-08-01
首先开要用到的io口时钟,再配置某个引脚为输出模式就可以输出了。如果用最新的库函数就是RCC,GPIOInit,Setbit,Resetbit追问

直接在循环里写PAout(8)=1 这样的行吗?
要不要在前面加什么定义 或者加什么头文件?

追答

不行,首先你没有初始化A8口,默认是浮空输入的。其次没有PAout()这东西,或许你看的例程里有这样的操作,他肯定有宏定义。右键-》Go To Definition 可以看

第3个回答  2016-08-01
1、普通推挽输出(GPIO_Mode_Out_PP):

使用场合:一般用在0V和3.3V的场合。线路经过两个P_MOS 和N_MOS 管,负责上拉和下拉电流。

使用方法:直接使用

输出电平:推挽输出的低电平是0V,高电平是3.3V。

2、普通开漏输出(GPIO_Mode_Out_OD):

使用场合:一般用在电平不匹配的场合,如需要输出5V的高电平。

使用方法:就需要再外部接一个上拉电阻,电源为5V,把GPIO设置为开漏模式, 当输出高组态时,由上拉电阻和电源向外输出5V的电压。

输出电平:在开漏输出模式时,如果输出为0,低电平,则使N_MOS 导通,使输 出接地。若控制输出为1(无法直接输出高电平),则既不输出高电平 也不输出低电平,为高组态。为正常使用,必须在外部接一个上拉电 阻。

特性: 它具“线与”特性,即很多个开漏模式 引脚连接到一起时,只有当所有 引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部 上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就相当 于短路接地,使得整条线路都为低电平,0 伏。

3、复用推挽输出(GPIO_Mode_AF_PP):用作串口的输出。

4、复用开漏输出(GPIO_Mode_AF_OD):用在IIC。

所有的开漏输出都需要接上拉电阻。

以上内容来源于http://www.viiboo.cn追问

那到底怎么写?

本回答被网友采纳
相似回答