OpenEdv-开源电子网

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

mini板如何重新设定IO口再由蓝牙控制IO口的高低电平

[复制链接]

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2016-6-15
在线时间
22 小时
发表于 2016-9-22 21:50:58 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 WeTiGY 于 2016-9-22 22:18 编辑

原先mini板蓝牙模块是控制LED1即PD2端口的高低电平。我重新设定IO口想要控制PB5端口的高低电平为什么没有成功。红色为我修改的部分。代码如下
led.h文件
#ifndef __LED_H
#define __LED_H         
#include "sys.h"

#define LED0 PAout(8)        // PA8
#define LED1 PDout(2)        // PD2
#define OUT1 PBout(5) //PB5        

void LED_Init(void);//初始化                                                     
#endif


led.c文件
#include "led.h"                    
//LED IO初始化
void LED_Init(void)
{

GPIO_InitTypeDef  GPIO_InitStructure;
         
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOB, ENABLE);        
        
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                                 //LED0-->PA.8 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure);                                         //根据设定参数初始化GPIOA.8
GPIO_SetBits(GPIOA,GPIO_Pin_8);                                                 //PA.8 输出高

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                             //LED1-->PD.2 端口配置, 推挽输出
GPIO_Init(GPIOD, &GPIO_InitStructure);                                           //推挽输出 ,IO口速度为50MHz
GPIO_SetBits(GPIOD,GPIO_Pin_2);                                                  //PD.2 输出高

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                           
GPIO_Init(GPIOB, &GPIO_InitStructure);                                          
GPIO_SetBits(GPIOB,GPIO_Pin_5);                                                 

}


部分main.c文件
if(USART2_RX_STA&0X8000)                        //接收到一次数据了
                {
                        LCD_Fill(30,200,240,320,WHITE);        //清除显示
                         reclen=USART2_RX_STA&0X7FFF;        //得到数据长度
                          USART2_RX_BUF[reclen]=0;                 //加入结束符
                        if(reclen==9||reclen==8)                 //控制DS1检测
                        {
                                //if(strcmp((const char*)USART2_RX_BUF,"+LED1 ON")==0)LED1=0;        //打开LED1
                                //if(strcmp((const char*)USART2_RX_BUF,"+LED1 OFF")==0)LED1=1;//关闭LED1
                                //我就改动了这几个地方为什么没有成功。是不是还遗漏了什么
                                if(strcmp((const char*)USART2_RX_BUF,"+LED1 ON")==0) OUT1=0;
                                if(strcmp((const char*)USART2_RX_BUF,"+LED1 OFF")==0) OUT1=1;
                        }
                         LCD_ShowString(30,200,209,119,16,USART2_RX_BUF);//显示接收到的数据
                         USART2_RX_STA=0;         
                }                                                                                                         




最佳答案

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

已解决 在mini板IO引脚分配表中 PB5为TFTLCD接口的D5脚 该IO接TFTLCD模块接口的D5,当不插TFTLCD模块时,该IO完全独立。而LCD模块已经使用该引脚。不能再使用。 解决方式:取消LCD模块或更改为其他引脚。 例:PA4引脚 NRF24L01接口的CE信号 接NRF24L01接口的CE脚,当不使用NRF24L01接口时,该IO完全独立
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2016-6-15
在线时间
22 小时
 楼主| 发表于 2016-9-22 21:50:59 | 显示全部楼层
本帖最后由 WeTiGY 于 2016-9-24 11:22 编辑

已解决
在mini板IO引脚分配表中
PB5为TFTLCD接口的D5脚        该IO接TFTLCD模块接口的D5,当不插TFTLCD模块时,该IO完全独立。而LCD模块已经使用该引脚。不能再使用。
解决方式:取消LCD模块或更改为其他引脚。
例:PA4引脚   NRF24L01接口的CE信号        接NRF24L01接口的CE脚,当不使用NRF24L01接口时,该IO完全独立
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-9-22 22:03:25 | 显示全部楼层
                                if(strcmp((const char*)USART2_RX_BUF,"+LED1 OFF")==0) OUT1=0;
                                if(strcmp((const char*)USART2_RX_BUF,"+LED1 OFF")==0) OUT1=1;
回复

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2016-6-15
在线时间
22 小时
 楼主| 发表于 2016-9-22 22:13:43 | 显示全部楼层
憨厚诚实大叔 发表于 2016-9-22 22:03
if(strcmp((const char*)USART2_RX_BUF,"+LED1 OFF")==0) OUT1=0;
      ...

那个复制粘贴的时候错了。不是这个问题。
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-9-23 09:24:05 | 显示全部楼层
调试啊,一部分一部分排除啊
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2017-7-18
在线时间
15 小时
发表于 2018-8-10 19:47:43 | 显示全部楼层
楼主 请问一下你最终实现了PA4给高低电平了吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 22:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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