继电器控制电机:
5s启动
5s停止
循环
管脚图:
管脚用的是GPIO15
驱动:
beep.c
/*
* leds.c
*
* Created on: 2024年8月2日
* Author: Administrator
*/
#include<relay.h>
/*******************************************************************************
* 函 数 名 : LED_Init
* 函数功能 : LED初始化函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void RELAY_Init(void)
{
EALLOW;//关闭写保护
SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1; // 开启GPIO时钟
//LED1端口配置
GpioCtrlRegs.GPAMUX1.bit.GPIO15=0;//设置为通用GPIO功能
GpioCtrlRegs.GPADIR.bit.GPIO15=1;//设置GPIO方向为输出
GpioCtrlRegs.GPAPUD.bit.GPIO15=0;//使能GPIO上拉电阻
EDIS;//开启写保护
GpioDataRegs.GPACLEAR.bit.GPIO15=1;//设置GPIO输出低电平
}
beep.h
/*
* leds.h
*
* Created on: 2024年8月2日
* Author: Administrator
*/
#ifndef RELAY_H_
#define RELAY_H_
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
#define RELAYON (GpioDataRegs.GPASET.bit.GPIO15=1)
#define RELAYOFF (GpioDataRegs.GPACLEAR.bit.GPIO15=1)
void RELAY_Init(void);
#endif /* RELAY_H_ */
主函数main.c
/*
* main.c
*
* Created on: 2018-3-21
* Author: Administrator
*/
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
#include<relay.h>
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,通过循环占用CPU,达到延时功能
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void delay(void)
{
Uint16 i;
Uint32 j;
for(i=0;i<32;i++)
for (j = 0; j < 100000; j++);
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
InitSysCtrl();//系统时钟初始化,默认已开启F28335所有外设时钟
RELAY_Init();
while(1)
{
RELAYON;//设置GPIO输出翻转信号
DELAY_US(5000000);
RELAYOFF;//设置GPIO输出翻转
DELAY_US(5000000);
}
}
实验结果视频:
STM32F28335实验:继电器