/** * @brief Example firmware main entry point. * @par Parameters: * None * @retval * None */ void main(void) { /* Time base configuration */ TIM2_TimeBaseInit(TIM2_PRESCALER_2048, 65535); /* Prescaler configuration */ TIM2_PrescalerConfig(TIM2_PRESCALER_2048, TIM2_PSCRELOADMODE_IMMEDIATE); /* Output Compare Active Mode configuration: Channel1 */ /* TIM2_OCMode = TIM2_OCMODE_ACTIVE TIM2_OutputState = TIM2_OUTPUTSTATE_ENABLE TIM2_Pulse = CCR1_Val TIM2_OCPolarity = TIM2_OCPOLARITY_HIGH */ TIM2_OC1Init(TIM2_OCMODE_ACTIVE, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val, TIM2_OCPOLARITY_HIGH); TIM2_OC1PreloadConfig(DISABLE); /* Output Compare Active Mode configuration: Channel2 */ /*TIM2_Pulse = CCR2_Val */ TIM2_OC2Init(TIM2_OCMODE_ACTIVE, TIM2_OUTPUTSTATE_ENABLE,CCR2_Val, TIM2_OCPOLARITY_HIGH); TIM2_OC2PreloadConfig(DISABLE); /* Output Compare Active Mode configuration: Channel3 */ /* TIM2_Pulse = CCR3_Val */ TIM2_OC3Init(TIM2_OCMODE_ACTIVE, TIM2_OUTPUTSTATE_ENABLE,CCR3_Val, TIM2_OCPOLARITY_HIGH); TIM2_OC3PreloadConfig(DISABLE); TIM2_ARRPreloadConfig(ENABLE); /* Set PG.6 pin */ GPIO_Init(GPIOG, GPIO_PIN_6, GPIO_MODE_OUT_PP_LOW_FAST); GPIO_WriteHigh(GPIOG, GPIO_PIN_6); /* TIM2 enable counter */ TIM2_Cmd(ENABLE); while (1); }
//*********************************// void sysio_ini(void) { GPIO_DeInit(GPIOD); GPIO_Init(GPIOD,GPIO_PIN_2 ,GPIO_MODE_IN_PU_NO_IT); //data165 GPIO_Init(GPIOD,GPIO_PIN_3 ,GPIO_MODE_OUT_PP_HIGH_FAST); //clk165 GPIO_Init(GPIOD,GPIO_PIN_4 ,GPIO_MODE_OUT_PP_HIGH_FAST); //sh165 GPIO_WriteHigh(GPIOD,H165_SH); GPIO_WriteHigh(GPIOD,H165_CLK); GPIO_DeInit(GPIOC); GPIO_Init(GPIOC,GPIO_PIN_4,GPIO_MODE_OUT_PP_HIGH_FAST);//led GPIO_Init(GPIOC,GPIO_PIN_5,GPIO_MODE_OUT_PP_HIGH_FAST);//c138 GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_OUT_PP_HIGH_FAST);//b138 GPIO_Init(GPIOC,GPIO_PIN_7,GPIO_MODE_OUT_PP_HIGH_FAST);//a138 GPIO_WriteLow(GPIOC,GPIO_PIN_4); GPIO_DeInit(GPIOB); GPIO_Init(GPIOB,GPIO_PIN_4 ,GPIO_MODE_OUT_OD_HIZ_SLOW); //clk1637 GPIO_Init(GPIOB,GPIO_PIN_5 ,GPIO_MODE_OUT_OD_HIZ_SLOW); //sh1637 GPIO_WriteHigh(GPIOB,T1637_CLK); GPIO_WriteHigh(GPIOB,T1637_DATA); }
//SpeedSet: //SPI_BAUDRATEPRESCALER_2 //SPI_BAUDRATEPRESCALER_4 //SPI_BAUDRATEPRESCALER_8 //SPI_BAUDRATEPRESCALER_16 static void spi_init(SPI_BaudRatePrescaler_TypeDef SPI_BaudRatePrescaler) { GPIO_Init(LCD_CS_PIN,GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(LCD_CD_PIN,GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(LCD_RST_PIN,GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(LCD_LIGHT_PIN,GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(SPI_SCK_PIN,GPIO_MODE_OUT_PP_LOW_FAST); GPIO_Init(SPI_MOSI_PIN,GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(SPI_MISO_PIN,GPIO_MODE_IN_PU_NO_IT); //打开flash电源 开发板独有 GPIO_Init(GPIOE,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_WriteHigh(GPIOE,GPIO_PIN_0); //打开背光 GPIO_WriteLow(LCD_LIGHT_PIN); GPIO_WriteLow(LCD_RST_PIN); u8g_10MicroDelay(); GPIO_WriteHigh(LCD_RST_PIN); //关闭FLASH CS GPIO_WriteLow(GPIOG,GPIO_PIN_0); //初始化SPI SPI_DeInit(); SPI_Init(SPI_FIRSTBIT_MSB, SPI_BaudRatePrescaler, SPI_MODE_MASTER, SPI_CLOCKPOLARITY_LOW, SPI_CLOCKPHASE_1EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT, 0x00); SPI_Cmd(ENABLE); }
uint8_t SPISendByte(uint8_t Data) { #ifdef USE_SPI_MODULE /*!< Wait until the transmit buffer is empty */ while (SPI_GetFlagStatus(SPI_FLAG_TXE) == RESET) {} /*!< Send the byte */ SPI_SendData(Data); /*!< Wait to receive a byte*/ while (SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET) {} /*!< Return the byte read from the SPI bus */ return SPI_ReceiveData(); #else uint8_t i; for(i=0;i<8;i++) { GPIO_WriteLow(ENC_SCK_PORT,ENC_SCK_PIN); if(Data & 0x80) GPIO_WriteHigh(ENC_MOSI_PORT,ENC_MOSI_PIN); else GPIO_WriteLow(ENC_MOSI_PORT,ENC_MOSI_PIN); GPIO_WriteHigh(ENC_SCK_PORT,ENC_SCK_PIN); Data <<=1; } GPIO_WriteLow(ENC_SCK_PORT,ENC_SCK_PIN); return 0; #endif }
//------------------------------------------------------------------------------------------------- // Write data to current position //------------------------------------------------------------------------------------------------- void GLCD_WriteData(unsigned char dataToWrite) { while(GLCD_ReadStatus(screen_x / 64)&DISPLAY_STATUS_BUSY); // GPIO_StructInit(&GPIO_InitStructure); // GPIO_InitStructure.GPIO_Pin = (0xFF ); // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // GPIO_Init(KS0108_PORT, &GPIO_InitStructure); GPIO_Init(KS0108_PORT,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_LOW_FAST); GPIO_WriteLow(GPIOC, KS0108_RW); GLCD_Delay(); GPIO_WriteHigh(GPIOC, KS0108_RS); GLCD_Delay(); GPIO_Write(KS0108_PORT, (GPIO_Pin_TypeDef)(dataToWrite )); GLCD_Delay(); GLCD_EnableController(screen_x / 64); GLCD_Delay(); GPIO_WriteHigh(GPIOC, KS0108_EN); GLCD_Delay(); GPIO_WriteLow(GPIOC, KS0108_EN); GLCD_Delay(); GLCD_DisableController(screen_x / 64); screen_x++; }
/** ****************************************************************************** * @brief Adjustable led blinking speed using touch sensing keys * KEY1: LED1 is blinking * KEY1: LED1 is blinking faster * KEY1: LED1 don't blink anymore * @par Parameters: * None * @retval void None * @par Required preconditions: * None ****************************************************************************** */ void ExtraCode_StateMachine(void) { if ((TSL_GlobalSetting.b.CHANGED) && (TSLState == TSL_IDLE_STATE)) { TSL_GlobalSetting.b.CHANGED = 0; if (sSCKeyInfo[0].Setting.b.DETECTED) /* KEY 1 touched */ { BlinkSpeed++; BlinkSpeed = BlinkSpeed % 4; // mike - was 3 } } /* * Mike added - just worked out the action sequence for the stm8s 'new-code-install' they call it download - my ASD get confused with this and freezes - in the project tab - look for the debug and download words - debug tab - select a statement in C code in prog and can 'run to ursor' - can go (F5) next to change the case statement to add extra case and toggle an extra LED to be added */ switch (BlinkSpeed) { case 0 : GPIO_WriteHigh(GPIOD, GPIO_PIN_0); // GPIO_WriteHigh(GPIOD, GPIO_PIN_1); GPIO_WriteHigh(GPIOD, GPIO_PIN_2); // mike added break; case 1 : GPIO_WriteLow(GPIOD, GPIO_PIN_2); if (TSL_Tick_Flags.b.User_Flag_100ms == 1) { Delay(&Toggle, 2*MilliSec); } break; case 2 : if (TSL_Tick_Flags.b.User_Flag_100ms == 1) { Delay(&Toggle, 1*MilliSec); } break; case 3 : if (TSL_Tick_Flags.b.User_Flag_100ms == 1) { Delay(&Toggle, 1*MilliSec); // GPIO_WriteHigh(GPIOD, GPIO_PIN_1); GPIO_WriteReverse(GPIOD, GPIO_PIN_2); // each time we go here we toggle } break; default : if (TSL_Tick_Flags.b.User_Flag_100ms == 1) { Delay(&Toggle, 1*Sec); } } }
//------------------------------------------------------------------------------------------------- // Disable Controller (0-2) //------------------------------------------------------------------------------------------------- void GLCD_DisableController(unsigned char controller) { switch(controller){ case 0 : GPIO_WriteHigh(GPIOC, KS0108_CS1); break; case 1 : GPIO_WriteHigh(GPIOC, KS0108_CS2); break; //case 2 : PORT_SetBits(KS0108_PORT, KS0108_CS3); break; default: break; } }
void GLCD_Reset(void) { GPIO_WriteHigh(GPIOC, KS0108_RES); GLCD_Delay(); GPIO_WriteLow(GPIOC, KS0108_RES); GLCD_Delay(); GPIO_WriteHigh(GPIOC, KS0108_RES); while(GLCD_ReadStatus(0)&DISPLAY_STATUS_BUSY); }
void LCD_NYB(unsigned char nyb, char type){ unsigned char temp; temp = (nyb<<4) & 0xF0; GPIO_Write(LCD_PORT,temp); if(type == 0){ GPIO_WriteLow(LCD_PORT,LCD_RS); //COMMAND MODE } else { GPIO_WriteHigh(LCD_PORT,LCD_RS); //CHARACTER/DATA MODE } GPIO_WriteHigh(LCD_PORT,LCD_E); //ENABLE LCD DATA LINE DelayMS(1); //SMALL DELAY GPIO_WriteLow(LCD_PORT,LCD_E); //DISABLE LCD DATA LINE }
void run_led(u8 sta) { if(sta==1) GPIO_WriteLow(GPIOA,GPIO_PIN_3); else GPIO_WriteHigh(GPIOA,GPIO_PIN_3); }
static void cs(char h) { if(h) GPIO_WriteHigh(LCDDIG_CS_PORT,LCDDIG_CS_PIN); else GPIO_WriteLow(LCDDIG_CS_PORT,LCDDIG_CS_PIN); }
static void rd(char h) { if(h) GPIO_WriteHigh(LCDDIG_PORT,LCDDIG_RD_PIN); else GPIO_WriteLow(LCDDIG_PORT,LCDDIG_RD_PIN); }
/** * @brief Example main entry point. * @par Parameters: * None * @retval * None */ void main(void) { /* Initialize I/Os in Output Mode for LEDs */ GPIO_Init(LEDS_PORT, LED1_PIN | LED2_PIN, GPIO_MODE_OUT_PP_LOW_FAST); /* Initialize I/O in Input Mode with Interrupt for button and joystick */ /* Button */ GPIO_Init(BUTTON_PORT, BUTTON_PIN, GPIO_MODE_IN_FL_IT); /* Joystick */ GPIO_Init(JOYSTICK_PORT, JOYSTICK_DOWN_PIN, GPIO_MODE_IN_FL_IT); /* Initialize the Interrupt sensitivity for button and joystick */ EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB, EXTI_SENSITIVITY_FALL_LOW); EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_LOW); /* Change the software priority between button and joystick: - By hardware the PORTB (joystick) has a higher priority than PORTC (button) - We configure the PORTC (button) to have a higher sw priority than PORTB (joystick) */ ITC_SetSoftwarePriority(ITC_IRQ_PORTB, ITC_PRIORITYLEVEL_1); /* joystick */ ITC_SetSoftwarePriority(ITC_IRQ_PORTC, ITC_PRIORITYLEVEL_2); /* button = higher sw priority */ enableInterrupts(); /* LEDs are ON together */ GPIO_WriteHigh(LEDS_PORT, (LED1_PIN | LED2_PIN)); while (1); }
/** * @brief Example firmware main entry point. * @par Parameters: * None * @retval * None */ void main(void) { u8 Leds; /* Contains which LEDs to operate */ /* Initialize I/Os in Output Mode */ GPIO_Init(LEDS_PORT, (LED1_PIN | LED2_PIN | LED3_PIN | LED4_PIN), GPIO_MODE_OUT_PP_LOW_FAST); /* Toggles LEDs */ while (1) { /* Check button status */ if ((GPIO_ReadInputData(BUTTON_PORT) & BUTTON_PIN) == (u8)0x00) { /* Button is pressed */ Leds = (LED2_PIN | LED3_PIN); } else { /* Button is released */ Leds = (LED1_PIN | LED4_PIN); } /* LEDs ON */ GPIO_WriteHigh(LEDS_PORT, Leds); Delay((u16)60000); Delay((u16)60000); /* LEDs OFF */ GPIO_WriteLow(LEDS_PORT, Leds); Delay((u16)60000); Delay((u16)60000); } }
int main( void ){ uint16_t i; // Reset GPIO port D to a default state GPIO_DeInit(GPIOD); /* Clock configuration -----------------------------------------*/ //CLK_Config(); /*AWU configuration --------------------------------------------*/ AWU_Config(); GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST); // The main loop while( 1 ){ GPIO_WriteLow(GPIOD, GPIO_PIN_0); for(i=0;i<10000;i++) // A delay loop { nop(); } GPIO_WriteHigh(GPIOD, GPIO_PIN_0); halt();/* Program halted */ } }
static void set_gpio_level(GPIO_TypeDef *PORT, GPIO_Pin_TypeDef Pin, uint8_t level) { if(level != 0){ GPIO_WriteHigh(PORT, Pin); }else{ GPIO_WriteLow(PORT, Pin); } }
static void data(char h) { GPIO_Init(LCDDIG_PORT, (GPIO_Pin_TypeDef)(LCDDIG_DATA_PIN ), GPIO_MODE_OUT_PP_LOW_FAST); if(h) GPIO_WriteHigh(LCDDIG_PORT,LCDDIG_DATA_PIN); else GPIO_WriteLow(LCDDIG_PORT,LCDDIG_DATA_PIN); }
void _Device_Set_ADP_SOC(unsigned char enable){ if(enable){ //DeviceOn GPIO_WriteHigh(ADP_SOC_PORT, ADP_SOC_PIN); }else{ //DeviceOff GPIO_WriteLow(ADP_SOC_PORT, ADP_SOC_PIN); } }
//RS485 使能配置,flag=0使能接收 flag=1使能发送 port默认为1 void RS485_RSV(u8 port, u8 flag) { if(port == 1) { if(flag ==0) GPIO_WriteLow(GPIOD,GPIO_PIN_4); else GPIO_WriteHigh(GPIOD,GPIO_PIN_4); } }
// Enable or Disable the LCD backlight void LCD_Backlight(FunctionalState NewState) { if (NewState == DISABLE) { GPIO_WriteLow(LCD_BACKLIGHT_PORT, LCD_BACKLIGHT_PIN); } else { GPIO_WriteHigh(LCD_BACKLIGHT_PORT, LCD_BACKLIGHT_PIN); } }
// Enable or Disable the LCD through CS pin void LCD_ChipSelect(FunctionalState NewState) { if (NewState == DISABLE) { GPIO_WriteLow(LCD_CS_PORT, LCD_CS_PIN); /* CS pin low: LCD disabled */ } else { GPIO_WriteHigh(LCD_CS_PORT, LCD_CS_PIN); /* CS pin high: LCD enabled */ } }
void BSP_LED_Off (uint8_t led) { switch (led) { case 0: GPIO_WriteHigh(LED1_GPIO_PORT, LED1_GPIO_PIN); GPIO_WriteHigh(LED2_GPIO_PORT, LED2_GPIO_PIN); break; case 1: GPIO_WriteHigh(LED1_GPIO_PORT, LED1_GPIO_PIN); break; case 2: GPIO_WriteHigh(LED2_GPIO_PORT, LED2_GPIO_PIN); break; default: break; } }
//------------------------------------------------------------------------------------------------- // Read Status byte from specified controller (0-2) //------------------------------------------------------------------------------------------------- unsigned char GLCD_ReadStatus(unsigned char controller) { unsigned char status; // GPIO_StructInit(&GPIO_InitStructure); // GPIO_InitStructure.GPIO_Pin = 0xFF ; // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // GPIO_Init(KS0108_PORT, &GPIO_InitStructure); GPIO_Init(KS0108_PORT,GPIO_PIN_ALL,GPIO_MODE_IN_PU_NO_IT); GPIO_WriteHigh(GPIOC, KS0108_RW); GPIO_WriteLow(GPIOC, KS0108_RS); GLCD_EnableController(controller); GLCD_Delay(); GPIO_WriteHigh(GPIOC, KS0108_EN); GLCD_Delay(); status = ((GPIO_ReadInputData(KS0108_PORT) ) & 0xFF); GPIO_WriteLow(GPIOC, KS0108_EN); GLCD_DisableController(controller); return status; }
static void _led_write_com(char digit) { // LED_COM_4: PD1 // LED_COM_3: PD4 // LED_COM_2: PD6 // LED_COM_1: PA3 switch (digit) { case 1: GPIO_WriteHigh(GPIOA, (GPIO_Pin_TypeDef)GPIO_PIN_3); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_6); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_4); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_1); break; case 2: GPIO_WriteLow(GPIOA, (GPIO_Pin_TypeDef)GPIO_PIN_3); GPIO_WriteHigh(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_6); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_4); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_1); break; case 3: GPIO_WriteLow(GPIOA, (GPIO_Pin_TypeDef)GPIO_PIN_3); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_6); GPIO_WriteHigh(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_4); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_1); break; case 4: GPIO_WriteLow(GPIOA, (GPIO_Pin_TypeDef)GPIO_PIN_3); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_6); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_4); GPIO_WriteHigh(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_1); break; case 0: GPIO_WriteLow(GPIOA, (GPIO_Pin_TypeDef)GPIO_PIN_3); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_6); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_4); GPIO_WriteLow(GPIOD, (GPIO_Pin_TypeDef)GPIO_PIN_1); break; } }
//Method to send strings via UART void UART_SendStr(const char *s) { //Set Max485 in Transmitter mode GPIO_WriteHigh(GPIOA, GPIO_PIN_3); while(*s) { UART2_SendData8((uint8_t)(*s)); while ((UART2->SR & UART2_SR_TXE ) != UART2_SR_TXE ); s++; } //Set Max485 in Receiver mode GPIO_WriteLow(GPIOA, GPIO_PIN_3); }
//****************读取HC165数据 void Read165(u8 *rdata) { u8 num=0; GPIO_WriteLow(GPIOD,H165_SH); asm("nop"); asm("nop"); GPIO_WriteHigh(GPIOD,H165_SH); asm("nop"); for(num=0; num<4; num++) { for(u8 i=0; i<8; i++) { *(rdata+num)<<=1; if(GPIO_ReadInputPin(GPIOD,H165_DATA)) { *(rdata+num) += 1; } GPIO_WriteLow(GPIOD,H165_CLK); asm("nop"); GPIO_WriteHigh(GPIOD,H165_CLK); //上升沿 asm("nop"); } } }
/** * @brief Configures the different GPIO ports. * @param None * @retval None */ void GPIO_Config(void) { /* Set PA5 as Output open-drain high-impedance level - SmartCard_IO(UART11_Tx)*/ GPIO_Init(GPIOA, GPIO_PIN_5, GPIO_MODE_OUT_OD_HIZ_FAST); /* Set PG5 as Output push-pull low level - SmartCard_RESET*/ GPIO_Init(GPIOG, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_FAST); /* Set PA6 as Output push-pull low level - SmartCard_CLK*/ GPIO_Init(GPIOA, GPIO_PIN_6, GPIO_MODE_OUT_PP_LOW_FAST); /* Set PG4 as Output push-pull low level - SmartCard_5V/3V*/ GPIO_Init(GPIOG, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_FAST); /* Set PG7 as Output push-pull high level (inactive state) - SmartCard_/CMDVCC*/ GPIO_Init(GPIOG, GPIO_PIN_7, GPIO_MODE_OUT_PP_HIGH_FAST); /* Set PE0 as Input pull-up, no external interrupt - SmartCard_OFF*/ GPIO_Init(GPIOE, GPIO_PIN_0, GPIO_MODE_IN_PU_NO_IT); /* Set RSTIN HIGH */ GPIO_WriteHigh(GPIOG, GPIO_PIN_5); /* Select Smart Card CMDVCC */ GPIO_WriteHigh(GPIOG, GPIO_PIN_7); /* Select 5 V */ GPIO_WriteHigh(GPIOG, GPIO_PIN_4); }
void spiFlashInit() { GPIO_Init(FLASH_CS_PIN,GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(SPI_SCK_PIN,GPIO_MODE_OUT_PP_LOW_FAST); GPIO_Init(SPI_MOSI_PIN,GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(SPI_MISO_PIN,GPIO_MODE_IN_PU_NO_IT); //打开flash电源 开发板独有 GPIO_Init(GPIOE,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_WriteHigh(GPIOE,GPIO_PIN_0); //初始化SPI SPI_DeInit(); SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_4, SPI_MODE_MASTER, SPI_CLOCKPOLARITY_LOW, SPI_CLOCKPHASE_1EDGE, SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT, 0x00); SPI_Cmd(ENABLE); }
void TxSendData(void) { // if( (u8OutState&BuzWork) == BuzWork) return; u8commStatus = 0; fgSending = 1; u8CurSendByte = 0; u8CurSendBit = 0; u8CurSend500usCnt = 0; u8CommSendStep = LEAD_LOW; GPIO_WriteHigh(TxRxPort,TX); GPIO_Init(TxRxPort, RX, GPIO_MODE_IN_FL_NO_IT); // u8CurRevByte = 0; // u8CurRevBit = 0; u8CommRevStep = 0; resetTim4For500us(); }
/** * @brief Example firmware main entry point. * @par Parameters: * None * @retval * None */ void main(void) { /* Time base configuration */ TIM2_TimeBaseInit(TIM2_PRESCALER_2048, 65535); /* Prescaler configuration */ TIM2_PrescalerConfig(TIM2_PRESCALER_2048, TIM2_PSCRELOADMODE_IMMEDIATE); /* Output Compare Active Mode configuration: Channel1 */ /* TIM2_OCMode = TIM2_OCMODE_INACTIVE TIM2_OCPolarity = TIM2_OCPOLARITY_HIGH TIM2_Pulse = CCR1_Val */ TIM2_OC1Init(TIM2_OCMODE_INACTIVE, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val, TIM2_OCPOLARITY_HIGH); TIM2_OC1PreloadConfig(DISABLE); /* Output Compare Active Mode configuration: Channel2 */ /*TIM2_Pulse = CCR2_Val; */ TIM2_OC2Init(TIM2_OCMODE_INACTIVE, TIM2_OUTPUTSTATE_ENABLE,CCR2_Val, TIM2_OCPOLARITY_HIGH); TIM2_OC2PreloadConfig(DISABLE); /* Output Compare Active Mode configuration: Channel3 */ /*TIM2_Pulse = CCR3_Val */ TIM2_OC3Init(TIM2_OCMODE_INACTIVE, TIM2_OUTPUTSTATE_ENABLE,CCR3_Val, TIM2_OCPOLARITY_HIGH); TIM2_OC3PreloadConfig(DISABLE); TIM2_ARRPreloadConfig(ENABLE); /* TIM IT enable */ TIM2_ITConfig(TIM2_IT_CC1, ENABLE); TIM2_ITConfig(TIM2_IT_CC2, ENABLE); TIM2_ITConfig(TIM2_IT_CC3, ENABLE); /* Set pin PG.5 & PG.6 & PG.7 to high state */ GPIO_Init(GPIOG, (GPIO_PIN_5|GPIO_PIN_6| GPIO_PIN_7), GPIO_MODE_OUT_PP_LOW_FAST); GPIO_WriteHigh(GPIOG, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); /* TIM2 enable counter */ TIM2_Cmd(ENABLE); enableInterrupts(); while (1); }