debug("%d",GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9)); debug("%d",GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9)); debug("%d",GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9));if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9) !=0) { debug("relay power on, device_power_on is 1"); xTaskNotifyFromISR...
#define SDA_Status() GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) Void CheckACK(void){ cAcknowledge...
#define SDA_Status() GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) void CheckACK(void) { cAcknowledge=TRUE if(SDA_Status()) { cAcknowledge=FalSE; } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 这段代码在ST上面执行OK,但是在GD上面运行不正常,其实这是由于GD的执行速度更快,ACK信号还出来,语句就已经...
建议修改代码: #defineSDA_Status()GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)voidCheckACK(void){u8 ErrTimer=0;cAcknowledge=TRUEwhile(SDA_Status()){ucErrTime++;if(ucErrTime>250){cAcknowledge=FalSE;}}} 如果你的程序只是用到了最常用的功能,如外部中断、定时器、串口这些,那么按照上面的3点改完之后就可以...
GD32F1系列移植指南
{ uint8_t BitValue; BitValue = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11); //读取SDA电平 Delay_us(10); //延时10us,防止时序频率超过要求 return BitValue; //返回SDA电平 } /** * 函 数:I2C初始化 * 参 数:无 * 返回值:无 * 注意事项:此函数需要用户实现内容,实现SCL和SDA引脚的初始化 *...
建议客户修改代码: #define SDA_Status() GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) Void CheckACK(void) { U8 ErrTimer=0; cAcknowledge=TRUE while(SDA_Status()) { ucErrTime++; if(ucErrTime250) { cAcknowledge=FalSE; } } } 代码修改后客户的问题得以解决,使用ST没有问题是因为ST的代码执行速度没有...
一、GD32与STM32区别 1.1 内部结构区别 1.1.1 内核 GD32采用二代的M3内核,STM32主要采用一代M3内核,下图是ARM公司的M3内核勘误表,GD使用的...
void GPIO_DeInit(GPIO_TypeDef* GPIOx); void GPIO_AFIODeInit(void); void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct); uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); ...
GD32F103x-移植指南