OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5304|回复: 10

怎样实现外部给一个低电平,然后stm32中实现灯亮

[复制链接]

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-4-24 16:27:18 | 显示全部楼层 |阅读模式
5金钱
      新人。求教一下,通过传感器检测,发现异常后就给一个低电平,然后stm32识别后灯亮声响。

最佳答案

查看完整内容[请看2#楼]

回复【4楼】天外火星人: --------------------------------- 比如你的传感器输出接到PA2,如果你想通过main函数的while()循环去读传感器输出状态,只需要把PA2设置为上拉输入模式,然后while循环里 去读PA2状态, 如果用外部中断的方式,就按我二楼说的做,也把PA2设置为上拉输入模式,并开启PA2的外部中断
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-4-24 16:27:19 | 显示全部楼层
回复【4楼】天外火星人:
---------------------------------
比如你的传感器输出接到PA2,如果你想通过main函数的while()循环去读传感器输出状态,只需要把PA2设置为上拉输入模式,然后while循环里 去读PA2状态,
如果用外部中断的方式,就按我二楼说的做,也把PA2设置为上拉输入模式,并开启PA2的外部中断
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-4-24 17:05:25 | 显示全部楼层
用一个IO口去检测低电平   把这个IO用作外部中断,设置为上拉,然后下降沿触发中断,在中断里开灯开蜂鸣器
具体内容参考    战舰或者mini开发板   外部中断例程
回复

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-4-13
在线时间
0 小时
 楼主| 发表于 2015-4-24 17:06:09 | 显示全部楼层
我根据跑马灯的例程改的,但是有个问题不知道怎样处理?就是传感器输出的DOUT。
  int main(void)
 {
delay_init();     
LED_Init();
DOUT_Init()
while(1)
{

LED0=1;   
if(DOUT==0)
{
    delay_ms(1000);
if(DOUT==0)
   {
LED0=0;   
}
}
}
 }


回复

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-4-13
在线时间
0 小时
 楼主| 发表于 2015-4-24 17:10:05 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
非常感谢,我待会用您的方法试一下。
我刚才用跑马灯的程序改了一下,是这样的,您帮我看一下。
但是有个问题不知道怎样处理?就是传感器输出的DOUT。不知道如何定义?
  int main(void)
 { 
delay_init();     
LED_Init();
DOUT_Init()
while(1)
{

LED0=1;    
if(DOUT==0)
{
    delay_ms(1000);
if(DOUT==0)
   {
LED0=0;    
}
}
}
 }
回复

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-4-13
在线时间
0 小时
 楼主| 发表于 2015-4-24 22:50:46 | 显示全部楼层
回复【5楼】lycreturn:
---------------------------------
你好,我在设置PA2为上拉输入后
void LED_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  //

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;  
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;   //上拉输入
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
 GPIO_Init(GPIOA, &GPIO_InitStructure);  
 GPIO_SetBits(GPIOA,GPIO_Pin_2);
}
然后主函数里面的PA2提示没有定义。我要在哪里定义修改?
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-4-24 23:02:08 | 显示全部楼层
回复【6楼】天外火星人:
---------------------------------
没定义当然不能用  
直接#define   DOUT   Ain(2)    然后在main函数里使用  DOUT
回复

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-4-13
在线时间
0 小时
 楼主| 发表于 2015-4-25 10:39:42 | 显示全部楼层
回复【7楼】lycreturn:
---------------------------------
早上好!辛苦了,昨天这么晚了还在回复我。非常感谢。 
我还有一些问题想问您,就是传感器输出的TTL可以直接接在STM32上面吧??这是传感器的数字输出。我想将模拟输出也接到STM32来,经过对应关系在屏幕中显示出数值来,要怎样实现?
还有,就是我想将这个程序和NRF24l01无线传输结合起来,需要注意些什么?
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-4-25 12:46:21 | 显示全部楼层
回复【8楼】天外火星人:
---------------------------------
注意电平匹配就行了,stm32的IO 3.3V通用,部分IO兼容5V,具体内容你要下去看手册
屏幕显示,一般用tft吧,去看tft显示例程
代码搞好了,2401加上去是没什么影响的
回复

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-4-13
在线时间
0 小时
 楼主| 发表于 2015-4-29 11:32:39 | 显示全部楼层
回复【9楼】lycreturn:
---------------------------------
您好!我遇到了一个问题,想向您请教一下,我是想通过while循环去读取PA2的电平(PA2接了一个传感器,当异常是输出低电平),异常输出报警的,正常则提示安全的,但是我下载到板子上时,当传感器输出为低时,程序不报警,而且灯也不亮,查了好久了,还是找不到问题。程序附上。麻烦您帮我看一下问题出在哪儿?
回复

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-4-13
在线时间
0 小时
 楼主| 发表于 2015-4-29 11:35:24 | 显示全部楼层
程序

TTL输出低电平报警.zip

2.18 MB, 下载次数: 66

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 07:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表