W7500P icon indicating copy to clipboard operation
W7500P copied to clipboard

Lots of bugs, here is some patch, but maybe you prefer a pull request??

Open edwin-oetelaar opened this issue 9 years ago • 5 comments

This is the source files

diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/src/W7500x_gpio.c
--- a/W7500x_stdPeriph_Driver/src/W7500x_gpio.c Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/src/W7500x_gpio.c Sun May 15 19:48:26 2016 +0200
@@ -84,7 +84,8 @@ void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO

     assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
     assert_param(IS_GPIO_PIN(GPIO_InitStruct->GPIO_Pin));
-    assert_param(IS_GPIO_PUPD(GPIO_InitStruct->GPIO_PuPd));
+    assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode));
+    assert_param(IS_GPIO_PAD(GPIO_InitStruct->GPIO_Pad));

     if      (GPIOx == GPIOA)       
     {
@@ -188,7 +189,7 @@ uint8_t GPIO_ReadInputDataBit(GPIO_TypeD
     return bitstatus;
 }

-uint8_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)
+uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)
 {
     assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
     return ((uint16_t)GPIOx->DATA);
@@ -215,7 +216,7 @@ uint8_t GPIO_ReadOutputDataBit(GPIO_Type
 uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)
 {
     /* Check the parameters */
-    assert_param(IS_GPIO_ALLPERIPH(GPIOx));
+    assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); /* fixed wrong macro name */
     return ((uint16_t)GPIOx->DATAOUT);
 }

@@ -339,7 +340,7 @@ void PAD_AFConfig(PAD_Type Px, uint16_t 
 {
     int i;
     uint16_t idx =0x1;
-    assert_param(IS_PAD_Type(Px));
+    assert_param(IS_PAD_TYPE(Px)); /* fixed wrong macro name */

     for(i=0;i<16;i++)
     {
@@ -402,15 +403,16 @@ void GPIO_INT_Configuration(GPIO_TypeDef
 {
     GPIO_InitTypeDef GPIO_InitStructure;
     PAD_Type PADx;
+
+    assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
+    assert_param(IS_GPIO_PIN(GPIO_Pin));
+
     GPIO_StructInit(&GPIO_InitStructure);

     GPIO_InitStructure.GPIO_Pin = GPIO_Pin;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
     GPIO_Init(GPIOx, &GPIO_InitStructure);

-    assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
-    assert_param(IS_GPIO_PIN(GPIO_InitStruct->GPIO_Pin));
-
     GPIOx->INTENSET  |= GPIO_Pin;
     GPIOx->INTTYPESET |= GPIO_Pin;

diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/src/W7500x_i2c.c
--- a/W7500x_stdPeriph_Driver/src/W7500x_i2c.c  Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/src/W7500x_i2c.c  Sun May 15 19:48:26 2016 +0200
@@ -11,7 +11,7 @@
   ******************************************************************************
   */
 /*include -------------------------------------*/
-#include <stdio.h>
+// #include <stdio.h>
 #include "W7500x_i2c.h"
 #include "W7500x_gpio.h"

@@ -52,7 +52,7 @@ uint32_t I2C_Init(I2C_ConfigStruct* conf

     else
     {
-        printf("SCL pin Port number error\r\n");
+       // printf("SCL pin Port number error\r\n");
         return 1;
     }

@@ -76,8 +76,8 @@ uint32_t I2C_Init(I2C_ConfigStruct* conf
     }
     else
     {
-        printf("SDA pin Port number error\r\n");
-        return 1;
+        // printf("SDA pin Port number error\r\n");
+        return 2;
     }

     PAD_AFConfig((PAD_Type) scl_port_num, scl_pin_index, (PAD_AF_TypeDef) PAD_AF1);
@@ -261,7 +261,7 @@ int I2C_Write(I2C_ConfigStruct* conf, ui
     //Write addr
     if(I2C_WriteByte(conf, addr) != 0)
     {
-        printf("Received NACK at address phase!!\r\n");
+        // printf("Received NACK at address phase!!\r\n");
         return -1;
     }

@@ -269,7 +269,7 @@ int I2C_Write(I2C_ConfigStruct* conf, ui
     for(i=0; i<len; i++)
     {
         if(I2C_WriteByte(conf, data[i]))
-            return -1;
+            return -2;
     }

     I2C_Stop(conf);
@@ -286,7 +286,7 @@ int I2C_WriteRepeated(I2C_ConfigStruct* 
     //Write addr
     if(I2C_WriteByte(conf, addr) != 0)
     {
-        printf("Received NACK at address phase!!\r\n");
+        // printf("Received NACK at address phase!!\r\n");
         return -1;
     }

@@ -294,7 +294,7 @@ int I2C_WriteRepeated(I2C_ConfigStruct* 
     for(i=0; i<len; i++)
     {
         if(I2C_WriteByte(conf, data[i]))
-            return -1;
+            return -2;
     }

     return 0;//success
@@ -309,7 +309,7 @@ int I2C_Read(I2C_ConfigStruct* conf, uin
     //Write addr | read command
     if(I2C_WriteByte(conf, (addr | 1)) != 0)
     {
-        printf("Received NACK at address phase!!\r\n");
+        //printf("Received NACK at address phase!!\r\n");
         return -1;
     }

@@ -338,7 +338,7 @@ int I2C_ReadRepeated(I2C_ConfigStruct* c
     //Write addr | read command
     if(I2C_WriteByte(conf, (addr | 1)) != 0)
     {
-        printf("Received NACK at address phase!!\r\n");
+        // printf("Received NACK at address phase!!\r\n");
         return -1;
     }

diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/src/W7500x_pwm.c
--- a/W7500x_stdPeriph_Driver/src/W7500x_pwm.c  Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/src/W7500x_pwm.c  Sun May 15 19:48:26 2016 +0200
@@ -189,8 +189,8 @@ void PWM_TimerModeInit(PWM_CHn_TypeDef* 
     /* Check the parameters */
     assert_param(IS_PWM_ALL_CH(PWM_CHn));
     assert_param(IS_PWM_PR_FILTER(PWM_TimerModeInitStruct->PWM_CHn_PR));
-    assert_param(IS_PWM_MR_FILTER(PWM_CHn, PWM_TimerModeInitStruct->PWM_CHn_MR));
-    assert_param(IS_PWM_LR_FILTER(PWM_CHn, PWM_TimerModeInitStruct->PWM_CHn_LR));
+    //assert_param(IS_PWM_MR_FILTER(PWM_CHn, PWM_TimerModeInitStruct->PWM_CHn_MR));
+    //assert_param(IS_PWM_LR_FILTER(PWM_CHn, PWM_TimerModeInitStruct->PWM_CHn_LR));
     assert_param(IS_PWM_CHn_UDMR(PWM_TimerModeInitStruct->PWM_CHn_UDMR));
     assert_param(IS_PWM_CHn_PDMR(PWM_TimerModeInitStruct->PWM_CHn_PDMR));

@@ -213,8 +213,8 @@ void PWM_CaptureModeInit(PWM_CHn_TypeDef
     /* Check the parameters */
     assert_param(IS_PWM_ALL_CH(PWM_CHn));
     assert_param(IS_PWM_PR_FILTER(PWM_CaptureModeInitStruct->PWM_CHn_PR));
-    assert_param(IS_PWM_MR_FILTER(PWM_CHn, PWM_CaptureModeInitStruct->PWM_CHn_MR));
-    assert_param(IS_PWM_LR_FILTER(PWM_CHn, PWM_CaptureModeInitStruct->PWM_CHn_LR));
+    //assert_param(IS_PWM_MR_FILTER(PWM_CHn, PWM_CaptureModeInitStruct->PWM_CHn_MR));
+    //assert_param(IS_PWM_LR_FILTER(PWM_CHn, PWM_CaptureModeInitStruct->PWM_CHn_LR));
     assert_param(IS_PWM_CHn_UDMR(PWM_CaptureModeInitStruct->PWM_CHn_UDMR));
     assert_param(IS_PWM_CHn_PDMR(PWM_CaptureModeInitStruct->PWM_CHn_PDMR));
     assert_param(IS_PWM_CHn_CMR(PWM_CaptureModeInitStruct->PWM_CHn_CMR));
@@ -241,13 +241,13 @@ void PWM_CounterModeInit(PWM_CHn_TypeDef
 {
     /* Check the parameters */
     assert_param(IS_PWM_ALL_CH(PWM_CHn));
-    assert_param(IS_PWM_PR_FILTER(PWM_TimerModeInitStruct->PWM_CHn_PR));
-    assert_param(IS_PWM_MR_FILTER(PWM_CHn, PWM_TimerModeInitStruct->PWM_CHn_MR));
-    assert_param(IS_PWM_LR_FILTER(PWM_CHn, PWM_TimerModeInitStruct->PWM_CHn_LR));
-    assert_param(IS_PWM_CHn_UDMR(PWM_TimerModeInitStruct->PWM_CHn_UDMR));
-    assert_param(IS_PWM_CHn_PDMR(PWM_TimerModeInitStruct->PWM_CHn_PDMR));
-    assert_param(IS_PWM_CHn_TCMR(PWM_TimerModeInitStruct->PWM_CHn_TCMR));
-    assert_param(IS_PWM_CHn_PEEER(PWM_TimerModeInitStruct->PWM_CHn_PEEER));
+    //assert_param(IS_PWM_PR_FILTER(PWM_CounterModeInitStruct->PWM_CHn_PR));
+    //assert_param(IS_PWM_MR_FILTER(PWM_CHn, PWM_CounterModeInitStruct->PWM_CHn_MR));
+    //assert_param(IS_PWM_LR_FILTER(PWM_CHn, PWM_CounterModeInitStruct->PWM_CHn_LR));
+    assert_param(IS_PWM_CHn_UDMR(PWM_CounterModeInitStruct->PWM_CHn_UDMR));
+    assert_param(IS_PWM_CHn_PDMR(PWM_CounterModeInitStruct->PWM_CHn_PDMR));
+    assert_param(IS_PWM_CHn_TCMR(PWM_CounterModeInitStruct->PWM_CHn_TCMR));
+    // assert_param(IS_PWM_CHn_PEEER(PWM_CounterModeInitStruct->PWM_CHn_PEEER));

     /* Select Timer/Counter mode as Timer mode */ 
     PWM_CHn->TCMR = PWM_CHn_TCMR_TimerMode;    
@@ -270,8 +270,8 @@ void PWM_DeadzoneModeInit(PWM_CHn_TypeDe
     /* Check the parameters */
     assert_param(IS_PWM_ALL_CH(PWM_CHn));
     assert_param(IS_PWM_PR_FILTER(PWM_DeadzoneModeInitStruct->PWM_CHn_PR));
-    assert_param(IS_PWM_MR_FILTER(PWM_CHn, PWM_DeadzoneModeInitStruct->PWM_CHn_MR));
-    assert_param(IS_PWM_LR_FILTER(PWM_CHn, PWM_DeadzoneModeInitStruct->PWM_CHn_LR));
+    //assert_param(IS_PWM_MR_FILTER(PWM_CHn, PWM_DeadzoneModeInitStruct->PWM_CHn_MR));
+    //assert_param(IS_PWM_LR_FILTER(PWM_CHn, PWM_DeadzoneModeInitStruct->PWM_CHn_LR));
     assert_param(IS_PWM_CHn_UDMR(PWM_DeadzoneModeInitStruct->PWM_CHn_UDMR));
     assert_param(IS_PWM_CHn_PDMR(PWM_DeadzoneModeInitStruct->PWM_CHn_PDMR));
     assert_param(IS_PWM_Deadznoe(PWM_CHn));
@@ -452,7 +452,7 @@ void PWM_CHn_ClearInt(PWM_CHn_TypeDef* P
 {
     /* Check the parameters */
     assert_param(IS_PWM_ALL_CH(PWM_CHn));
-    assert_param(IS_PWM_CHn_IntClearFlag(IntClearFlag));
+    assert_param(IS_PWM_CHn_IntClearFlag(PWM_CHn_ICR));

     PWM_CHn->ICR = PWM_CHn_ICR;
 }
@@ -492,7 +492,7 @@ void PWM_CHn_Start(PWM_CHn_TypeDef* PWM_
 void PWM_Multi_Start(uint32_t ssr_bit_flag) //complete
 {
     /* Check the parameters */
-    assert_param(IS_SSR_BIT_FLAG(FLAG));
+    assert_param(IS_SSR_BIT_FLAG(ssr_bit_flag));

     /* Set Start Stop register */
     PWM->SSR |= ssr_bit_flag;
@@ -533,7 +533,7 @@ void PWM_CHn_Stop(PWM_CHn_TypeDef* PWM_C
 void PWM_Multi_Stop(uint32_t ssr_bit_flag) //complete
 {
     /* Check the parameters */
-    assert_param(IS_SSR_BIT_FLAG(FLAG));
+    assert_param(IS_SSR_BIT_FLAG(ssr_bit_flag));

     /* Reset Start Stop register */
     PWM->SSR &= ~ssr_bit_flag;
@@ -574,7 +574,7 @@ void PWM_CHn_Pause(PWM_CHn_TypeDef* PWM_
 void PWM_Multi_Pause(uint32_t psr_bit_flag)
 {
     /* Check the parameters */
-    assert_param(IS_PSR_BIT_FLAG(FLAG));
+    assert_param(IS_PWM_PSR_BIT_FLAG(psr_bit_flag));

     PWM->PSR |= psr_bit_flag;
 }
@@ -614,7 +614,7 @@ void PWM_CHn_Restart(PWM_CHn_TypeDef* PW
 void PWM_Multi_Restart(uint32_t psr_bit_flag)
 {
     /* Check the parameters */
-    assert_param(IS_PSR_BIT_FLAG(FLAG));
+    assert_param(IS_PWM_PSR_BIT_FLAG(psr_bit_flag));

     PWM->PSR &= ~psr_bit_flag;
 }
diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/src/W7500x_ssp.c
--- a/W7500x_stdPeriph_Driver/src/W7500x_ssp.c  Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/src/W7500x_ssp.c  Sun May 15 19:48:26 2016 +0200
@@ -379,7 +379,7 @@ void SSP_ClearIT_Bit(SSP_TypeDef* SSPx, 
 {
     /* Check the parameters */
     assert_param(IS_SSP_ALL_PERIPH(SSPx));
-    assert_param(IS_SSP_CLEAR_IT(SSP_IT));
+    assert_param(IS_SSP_CLEAR_IT(SSP_CLEAR_IT));

     /* Clear the selected SSP  interrupt pending bit */
     SSPx->ICR = SSP_CLEAR_IT;
diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/src/W7500x_uart.c
--- a/W7500x_stdPeriph_Driver/src/W7500x_uart.c Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/src/W7500x_uart.c Sun May 15 19:48:26 2016 +0200
@@ -224,7 +224,7 @@ void S_UART_SetBaud(uint32_t baud)
 {
     uint32_t uartclock = 0x00, integer_baud = 0x00;

-    assert_param(IS_UART_MODE(S_UART_InitStruct->UART_Mode));
+    // assert_param(IS_UART_MODE(S_UART_InitStruct->UART_Mode));

     if(CRG->FCLK_SSR == CRG_FCLK_SSR_RCLK)
     {
@@ -306,7 +306,7 @@ ITStatus S_UART_GetITStatus(uint16_t S_U
 {
     ITStatus bitstatus = RESET;

-    assert_param(IS_S_UART_INTSATUS(S_UART_INTSTATUS));
+    assert_param(IS_S_UART_INTSTATUS(S_UART_INTSTATUS));

     if ((UART2->INT.STATUS & (S_UART_INTSTATUS)) != (uint16_t) RESET)
     {
@@ -322,7 +322,7 @@ ITStatus S_UART_GetITStatus(uint16_t S_U

 void S_UART_ClearITPendingBit(uint16_t S_UART_INTSTATUS)
 {
-    assert_param(IS_S_UART_INTSATUS(S_UART_INTSTATUS));
+    assert_param(IS_S_UART_INTSTATUS(S_UART_INTSTATUS));

     UART2->INT.CLEAR |= (S_UART_INTSTATUS);
 }
diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/src/W7500x_wdt.c
--- a/W7500x_stdPeriph_Driver/src/W7500x_wdt.c  Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/src/W7500x_wdt.c  Sun May 15 19:48:26 2016 +0200
@@ -117,7 +117,7 @@ uint32_t WDT_GetWDTControl(void)
 void WDT_SetWDTControl(uint32_t Control)
 {
     /* Check the parameters */
-    assert_param(IS_WDT_CONTROL(CONTROL));
+    assert_param(IS_WDT_CONTROL(Control));

     WDT_Unlock();
     WDT->WDTControl = Control;

And this is the matching header files

diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/inc/W7500x_dualtimer.h
--- a/W7500x_stdPeriph_Driver/inc/W7500x_dualtimer.h    Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/inc/W7500x_dualtimer.h    Sun May 15 19:54:05 2016 +0200
@@ -39,7 +39,7 @@ typedef struct


 #define IS_DUALTIMER_TimerMode(MODE)        (MODE <= 1) 
-#define IS_DUALTIMER_TimerPre(PREE)         (PRE <= 2) 
+#define IS_DUALTIMER_TimerPre(PRE)         (PRE <= 2) /* Edwin fixed this */
 #define IS_DUALTIMER_TimerSize(SIZE)        (SIZE <= 1) 
 #define IS_DUALTIMER_OneShot(ONESHOT)       (ONESHOT <= 1)

diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/inc/W7500x_gpio.h
--- a/W7500x_stdPeriph_Driver/inc/W7500x_gpio.h Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/inc/W7500x_gpio.h Sun May 15 19:54:05 2016 +0200
@@ -57,14 +57,15 @@


 #define IS_GPIO_PIN(PIN)        ((PIN) != (uint16_t)0x00)
+ /* edwin fixed this macro */
 #define IS_GET_GPIO_PIN(PIN)    (((PIN) == GPIO_Pin_0)  || ((PIN) == GPIO_Pin_1)  || \
-                                (((PIN) == GPIO_Pin_2)  || ((PIN) == GPIO_Pin_3)  || \
-                                (((PIN) == GPIO_Pin_4)  || ((PIN) == GPIO_Pin_5)  || \
-                                (((PIN) == GPIO_Pin_6)  || ((PIN) == GPIO_Pin_7)  || \
-                                (((PIN) == GPIO_Pin_8)  || ((PIN) == GPIO_Pin_9)  || \
-                                (((PIN) == GPIO_Pin_10) || ((PIN) == GPIO_Pin_11) || \
-                                (((PIN) == GPIO_Pin_12) || ((PIN) == GPIO_Pin_13) || \
-                                (((PIN) == GPIO_Pin_14) || ((PIN) == GPIO_Pin_15) )
+                                ((PIN) == GPIO_Pin_2)  || ((PIN) == GPIO_Pin_3)  || \
+                                ((PIN) == GPIO_Pin_4)  || ((PIN) == GPIO_Pin_5)  || \
+                                ((PIN) == GPIO_Pin_6)  || ((PIN) == GPIO_Pin_7)  || \
+                                ((PIN) == GPIO_Pin_8)  || ((PIN) == GPIO_Pin_9)  || \
+                                ((PIN) == GPIO_Pin_10) || ((PIN) == GPIO_Pin_11) || \
+                                ((PIN) == GPIO_Pin_12) || ((PIN) == GPIO_Pin_13) || \
+                                ((PIN) == GPIO_Pin_14) || ((PIN) == GPIO_Pin_15) )


 #define IS_GPIO_ALL_PERIPH(PERIPH)  (((PERIPH) == GPIOA) || ((PERIPH) == GPIOB) || \
@@ -86,8 +87,17 @@ typedef enum
     GPIO_SUMMIT = Px_PCR_CS_SUMMIT
 }GPIOPad_TypeDef;

+/* Edwin fixed this */
+ #define IS_GPIO_PAD(PAD)  (((PAD) & ~(GPIO_PuPd_UP | GPIO_PuPd_DOWN | GPIO_DS | GPIO_IE | GPIO_SUMMIT)) == 0 )

-#define IS_GPIO_PUPU(PUPD)  (((PUPD) == GPIO_PuPd_UP) || ((PUPD) == GPIO_PuPd_DOWN))
+/* Edwin fixed this */
+#define IS_GPIO_MODE(MODE)  (((MODE) == GPIO_Mode_IN) || \
+        ((MODE) == GPIO_Mode_OUT) || \
+        ((MODE) == GPIO_Mode_AF))

 typedef struct
 {
@@ -129,8 +139,8 @@ typedef enum
     PAD_AF3    = Px_AFSR_AF3
 }PAD_AF_TypeDef;

-#define IS_PAD_TYPE(Px)  (((Px) == PAD_PA) || ((Px) == PAD_PB) \
-                          ((Px) == PAD_PC))
+#define IS_PAD_TYPE(Px)  ( ((Px) == PAD_PA) || ( (Px) == PAD_PB)  ||  ((Px) == PAD_PC) )
+

 #define IS_PA_NUM(NUM) (((NUM)>=0) && ((NUM)<15))
 #define IS_PB_NUM(NUM) (((NUM)>=0) && ((NUM)<7))
@@ -140,13 +150,13 @@ typedef enum
                              ((AF) == PAD_AF2) || ((AF) == PAD_AF3))


-#define IS_GPIO_BIT_ACTION(ACTION)  (((ACTION_ == Bit_RESET) || (ACTION) ==Bit_SET))
+#define IS_GPIO_BIT_ACTION(ACTION)  (((ACTION)==Bit_RESET) || ((ACTION)==Bit_SET)) /* edwin fixed this */

 void GPIO_DeInit(GPIO_TypeDef* GPIOx);
 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);
-uint8_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
+uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
 uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
 uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
 void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/inc/W7500x_pwm.h
--- a/W7500x_stdPeriph_Driver/inc/W7500x_pwm.h  Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/inc/W7500x_pwm.h  Sun May 15 19:54:05 2016 +0200
@@ -31,9 +31,9 @@ typedef struct
     uint32_t    PWM_CHn_LR;   //Limit register
                               //   <0..31>   LR : Limit register <R/W>
     uint32_t    PWM_CHn_UDMR; //Up-Down mode register
-                              //   <0>   UDM : Up-down mode <R/W>
+                              //   <0>   UDM : Up-down mode, Up=0, Down=1 <R/W>
     uint32_t    PWM_CHn_PDMR; //Periodic mode register
-                                   //   <0>   PDM : Periodic mode <R/W>
+                              //   <0>   PDM : Periodic mode=0 , OneShot=1 <R/W>
 }PWM_TimerModeInitTypeDef;

 typedef struct
@@ -47,7 +47,7 @@ typedef struct
     uint32_t    PWM_CHn_UDMR; //Up-Down mode register
                               //   <0>   UDM : Up-down mode <R/W>
     uint32_t    PWM_CHn_PDMR; //Periodic mode register
-                              //   <0>   PDM : Peiodic mode <R/W>
+                              //   <0>   PDM : Periodic mode <R/W>
     uint32_t    PWM_CHn_CMR;  //Capture mode register
                                    //   <0>   CM : Capture mode <R/W>
 }PWM_CaptureModeInitTypeDef;
@@ -201,7 +201,7 @@ typedef struct

 #define PWM_CHn_DZER_Enable             (0x1ul)             
 #define PWM_CHn_DZER_Disable            (0x0ul)             
-#define PWM_CHn_DZER(ENABLE)           ((ENABLE == PWM_CHn_DZER_Enable) || \
+#define IS_PWM_CHn_DZER(ENABLE)        ((ENABLE == PWM_CHn_DZER_Enable) || \
                                         (ENABLE == PWM_CHn_DZER_Disable)) 

 #define IS_PWM_Deadznoe(CHn)           (((CHn == PWM_CH0) && (PWM_CH1->DZER == PWM_CHn_DZER_Disable)) || \
diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/inc/W7500x_ssp.h
--- a/W7500x_stdPeriph_Driver/inc/W7500x_ssp.h  Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/inc/W7500x_ssp.h  Sun May 15 19:54:05 2016 +0200
@@ -76,8 +76,7 @@ typedef struct
   * @{
   */

-#define IS_SSP_ALL_PERIPH(PERIPH) (((PERIPH) == SPI0) || \
-                                   ((PERIPH) == SPI1))
+#define IS_SSP_ALL_PERIPH(PERIPH) (((PERIPH) == SSP0) || ((PERIPH) == SSP1))

 #define SSP_SCR(X)  (X<<8)
 #define IS_SSP_SERIALCLOCKRATE(RATE) (((RATE) > (0x0000FFFF)) && \
@@ -159,8 +158,7 @@ typedef struct

 #define SSP_SOD_RESET    ((uint32_t)0x00)
 #define SSP_SOD_SET      ((uint32_t)0x08)
-#define IS_SSP_SOD(SOD)  (((SOD) == SSP_SOD_ENABLE) || \
-                          ((SOD) == SSP_SOD_DISABLE))
+#define IS_SSP_SOD(SOD)  (((SOD) == SSP_SOD_RESET) || ((SOD) == SSP_SOD_SET))
 /**
   * @}
   */
@@ -258,8 +256,7 @@ typedef struct
   */
 #define SSP_LBM_RESET  ((uint32_t)0x00)
 #define SSP_LBM_SET    ((uint32_t)0x01)
-#define IS_SSP_LBM(LBM) (((LBM) == SSP_LBM_NORMAL) || \
-                         ((LBM) == SSP_NSS_ENABLE))
+#define IS_SSP_LBM(LBM) (((LBM) == SSP_LBM_RESET) || ((LBM) == SSP_LBM_SET))
 /**
   * @}
   */ 
diff -r ab9c29b986b9 W7500x_stdPeriph_Driver/inc/W7500x_uart.h
--- a/W7500x_stdPeriph_Driver/inc/W7500x_uart.h Tue May 10 17:05:01 2016 +0200
+++ b/W7500x_stdPeriph_Driver/inc/W7500x_uart.h Sun May 15 19:54:05 2016 +0200
@@ -247,9 +247,9 @@ typedef struct
 #define S_UART_CTRL_TX          ((uint16_t)0x01UL << 0) /*!< TX                     */


-#define IS_S_UART_CTRL_FLAG(FLAG)   (((FLAG) == S_UART_CTRL_FLAG_RXOI)  || ((FLAG) == S_UART_CTRL_FLAG_TXOI) || \
-                                     ((FLAG) == S_UART_CTRL_FLAG_RXI)   || ((FLAG) == S_UART_CTRL_FLAG_TXI) || \
-                                    ((FLAG) == S_UART_CTRL_FLAG_RX)    || ((FLAG) == S_UART_CTRL_FLAG_TX))
+#define IS_S_UART_CTRL_FLAG(FLAG)   (((FLAG) == S_UART_CTRL_RXOI)  || ((FLAG) == S_UART_CTRL_TXOI) || \
+                                     ((FLAG) == S_UART_CTRL_RXI)   || ((FLAG) == S_UART_CTRL_TXI) || \
+                                    ((FLAG) == S_UART_CTRL_RX)    || ((FLAG) == S_UART_CTRL_TX))
 /**
   * @}
   */

I could make a pull request if you like that better. Please review your software, it has many issues. Best regards, Edwin van den Oetelaar

edwin-oetelaar avatar May 15 '16 17:05 edwin-oetelaar

I can fix this library for you, but I do have a family and will not continue to do it for free. If you want to hire me for a review and fixes, you know where to find me. edwin @ oetelaar dot com

edwin-oetelaar avatar May 15 '16 18:05 edwin-oetelaar

I have just come accross the inconsistencies mentioned here especially with GPIO_ReadInputData

hecko avatar May 26 '16 11:05 hecko

Hi edwin

Thanks to you interest in our company. I had to contact the European representative offices. So... your will get in contact and... please send to pull request. You pull request I will update.

thank you

best regards, Justinkim

khj098765 avatar May 26 '16 23:05 khj098765

I will clean up my fixes so I can send you a pull request. I will inform you in a couple of days.

Greetings, Edwin van den Oetelaar

edwin-oetelaar avatar May 27 '16 07:05 edwin-oetelaar

Nobody has tried to contact me from Wiznet. I will keep my fixes private for now.

edwin-oetelaar avatar Sep 18 '16 08:09 edwin-oetelaar