打印
[STM8]

STM8单片机I/O的疑惑

[复制链接]
670|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuhuis|  楼主 | 2019-2-15 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近买了一个STM8学习板子
做点亮LED灯的实验
我也试验一下,主要是练练手,熟悉一下I/O的特性
------------------------
******************************************************************/
#include "iostm8s208mb.h"//主控芯片的头文件
/************************常用数据类型定义*************************/
#define u8  uint8_t
#define u16 uint16_t
#define u32 uint32_t
typedef unsigned char    uint8_t;
typedef unsigned short   uint16_t;
typedef unsigned long    uint32_t;
/*************************端口/引脚定义区域***********************/
#define LED   PI_ODR_ODR0//连接至LED引脚PI0
/**************************函数声明区域***************************/

/**************************主函数区域*****************************/
void main(void)
{
  PI_DDR_DDR0=1; //配置PI0端口为输出模式
  PI_CR1_C10=1;  //配置PI0端口为推挽输出模式
  PI_CR2_C20=0;  //配置PI0端口低斜率输出2MHz
  LED=0;         //让PI0引脚输出低电平 - 点亮LED
}



主函数,一共就只有几行
应该不难,可是我ST-LINK
单步的时候发现
执行完 第一行   LED灯就亮了,说明引脚低电平
执行完 第二行   LED 灭了  ,引脚电平高

------------------------
这样我就有了一个疑惑,如果在配置引脚的过程中,引脚电平低
然后又变成高

这样一个状态不稳定的阶段,在应用开发上会不会出现什么危险情况?
沙发
wenfen| | 2019-2-15 10:48 | 只看该作者
如果是控制炸*的,那就爆了。

使用特权

评论回复
板凳
wenfen| | 2019-2-15 10:52 | 只看该作者
看你外面控制的设备,一般时间短没啥问题;

使用特权

评论回复
地板
zhuhuis|  楼主 | 2019-2-15 10:55 | 只看该作者
注意手册的上电后的初始值,不放心可以先动别的值,最后动方向

使用特权

评论回复
5
zhuhuis|  楼主 | 2019-2-15 10:57 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先

使用特权

评论回复
6
renzheshengui| | 2019-3-5 16:45 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
7
wakayi| | 2019-3-5 16:47 | 只看该作者
貌似单步的时候并不是实时的状态

使用特权

评论回复
8
wowu| | 2019-3-5 16:53 | 只看该作者
把那个延时加长  别设置断点 自己掐掐看对应上没有

使用特权

评论回复
9
Sunriver_Yao| | 2019-3-30 15:51 | 只看该作者
开机时,PIO为输入。所以,你可以上拉电阻(1M--1k),下拉电阻,决定高低电平。若指望是高电平,接上拉电阻。接下来,初始化。先不动Px_DDR的值,先设Px_ODR为0xFF,禁止中断(Px_CR2=0x00),再设Px_DDR为0xFF,与外在保持一致(高电平),再设Px_CR1位0xFF(PP模式),再设Px_CR2为0xFF(提速)......保证炸*不会爆炸!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

粉丝