在线时间0 小时
UID286422
ST金币0
蝴蝶豆0
注册时间2011-4-28
新手上路
- 最后登录
- 1970-1-1
|
a0a.1 0b0c
麻烦大家帮帮忙,我用的是编译器IAR,使用的是STM8L152C6单片机,开发板PD4,PD5,PD6接发光二极管低电平有效,写的是PB0口中断,设置为上升沿触发,其代码如下,出现的问题是:直接接上个导线,就直接进入中断,经过查阅资料说要接上下拉电阻于是也接上了,但是发现只要一个小小的电平变化就能进入中断,这一电平差不多是零点几伏左右,而我的目的是要达到差不多3V左右才进入中断,有哪位大虾知道的,麻烦帮我下,不甚感激。
#include
#include
#define u8 unsigned char
#define u16 unsigned int
#define u32 unsigned long
#define LED1_H() (PD_ODR |= 0x40)
#define LED1_L() (PD_ODR &= ~0x40)
#define LED2_H() (PD_ODR |= 0x20)
#define LED2_L() (PD_ODR &= ~0x20)
#define LED3_H() (PD_ODR |= 0x10)
#define LED3_L() (PD_ODR &= ~0x10)
void IO_Init();//端口初始化
void Clk_Config(void)
{
CLK_CKDIVR_CKM = 0; //系统时钟1分频
while(!(CLK_ICKCR & 0x02)); //等待HSI准备好
}
void main(void)
{
Clk_Config();
IO_Init();
__enable_interrupt();
while(1)
{
}
}
void IO_Init()
{
PD_DDR_DDR6 =1;//PD.6为输出
PD_DDR_DDR5 =1;//PD.5为输出
PD_DDR_DDR4 =1;//PD.4为输出
PD_CR1_C16 = 1;//PD.6推挽输出
PD_CR1_C15 = 1;//PD.5推挽输出
PD_CR1_C14 = 1;//PD.4推挽输出
LED1_H();
LED2_H();
LED3_H();
PB_DDR &=~0x01;//PB.0口为输入.
PB_CR1 &=0x00;//浮空输入
PB_CR2 =0x01;//PB0外部中断使能
EXTI_CR1_P0IS =1;//PB0上升沿沿中断
LED2_H();
}
#pragma vector =EXTI0_vector
__interrupt __root void PB0(void)
{
LED1_L();
LED2_L();
LED3_L();
} |
|