时序
代码
#include <stdio.h>
#include <stdint.h>
#include "stm32f1xx_hal.h"
#define JSC5396_DEVADDR 0x1e
#define MDC_PORT GPIOB
#define MDC_PIN GPIO_PIN_10
#define MDIO_PORT GPIOB
#define MDIO_PIN GPIO_PIN_11
#define MDC_Set() HAL_GPIO_WritePin(MDC_PORT, MDC_PIN, GPIO_PIN_SET)
#define MDC_Clr() HAL_GPIO_WritePin(MDC_PORT, MDC_PIN, GPIO_PIN_RESET)
#define MDIO_Set() HAL_GPIO_WritePin(MDIO_PORT, MDIO_PIN, GPIO_PIN_SET)
#define MDIO_Clr() HAL_GPIO_WritePin(MDIO_PORT, MDIO_PIN, GPIO_PIN_RESET)
#define MDIO_Get() HAL_GPIO_ReadPin(MDIO_PORT, MDIO_PIN)
void udelay(int us)
{
int i,j;
for(i=us;i>0;i--)
for(j=10;j>0;j--)
__NOP();
}
void bit_set(uint8_t b)
{
MDC_Clr();
if((b))
MDIO_Set();
else
MDIO_Clr();
udelay(1);
MDC_Set();
udelay(1);