找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1792|回复: 0
收起左侧

stm32的编程问题

[复制链接]
ID:255045 发表于 2018-7-15 20:22 | 显示全部楼层 |阅读模式
20黑币
调试hcsr04的代码
.h文件中,定义一个结构体
typedef struct {
float Distance;                 /*!< 用厘米测量传感器的距离*/
GPIO_TypeDef* ECHO_GPIOx;       /*!< 指向用于 ECHO pin 的 GPIOx 端口的指针。仅供私人使用 */
uint16_t ECHO_GPIO_Pin;         /*!<*/
GPIO_TypeDef* TRIGGER_GPIOx;    /*!< 指向用于 TRIGGER pin 的 GPIOx 端口的指针。仅供私人使用 */
uint16_t TRIGGER_GPIO_Pin;      /*!<  */
} TM_HCSR04_t;
申明函数
uint8_t HCSR04_Init(TM_HCSR04_t* HCSR04, GPIO_TypeDef* ECHO_GPIOx, uint16_t ECHO_GPIO_Pin, GPIO_TypeDef* TRIGGER_GPIOx, uint16_t TRIGGER_GPIO_Pin);
.c文件
uint8_t HCSR04_Init(TM_HCSR04_t *HCSR04, GPIO_TypeDef* ECHO_GPIOx, uint16_t ECHO_GPIO_Pin, GPIO_TypeDef* TRIGGER_GPIOx, uint16_t TRIGGER_GPIO_Pin)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* Save everything */
HCSR04->ECHO_GPIOx = ECHO_GPIOx;
HCSR04->ECHO_GPIO_Pin = ECHO_GPIO_Pin;
HCSR04->TRIGGER_GPIOx = TRIGGER_GPIOx;
HCSR04->TRIGGER_GPIO_Pin = TRIGGER_GPIO_Pin;
RCC_APB2PeriphClockCmd(HCSR04_CLK,ENABLE);
/* Trigger pin */
GPIO_InitStructure.GPIO_Pin = HCSR04->TRIGGER_GPIO_Pin;//trigger发送电平引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(HCSR04->TRIGGER_GPIOx, &GPIO_InitStructure);
GPIO_ResetBits(HCSR04->TRIGGER_GPIOx,HCSR04->TRIGGER_GPIO_Pin);
/* Echo pin */
GPIO_InitStructure.GPIO_Pin = HCSR04->ECHO_GPIO_Pin;//echo返回电平引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入
GPIO_Init(HCSR04->ECHO_GPIOx, &GPIO_InitStructure);
GPIO_ResetBits(HCSR04->ECHO_GPIOx,HCSR04->ECHO_GPIO_Pin);

/*开始测量, 检查传感器是否工作正常 */
if (HCSR04_Read(HCSR04) >= 0)
{  
  /* Sensor OK */
  return HCSR04_OK;
}
/* Sensor error */
    return HCSR04_ERROR;
}
主函数编辑如下
int main(void)
{
TM_HCSR04_t *hcsr04; //申明一个结构体指针
HCSR04_Init(hcsr04,HCSR04_PORT,HCSR04_ECHO,HCSR04_PORT,HCSR04_TRIG);
for(;;)
{
  length=HCSR04_Read(hcsr04);
}
}
keil 5编辑无错误,问题是HCSR04_Init函数里结构体指针赋值无效,HCSR04_Init函数里的引脚初始化也没有反应。
若有知晓者,敬请告知,不胜感谢!


回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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