初级会员
- 积分
- 156
- 金钱
- 156
- 注册时间
- 2016-6-15
- 在线时间
- 22 小时
|
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完全独立
|