在学习下去,就需要搭建更为复杂的硬件架构了,我对架构这个词理解不了,在这里拿来算是应用吧;
/* Includes ------------------------------------------------------------------*/
#include "stm8s.h"
/* Private defines -----------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
BitStatus bit_status;
//BitStatus bit_count;
unsigned char bit_count;
void Delay(uint16_t nCount)
{
/* Decrement nCount value */
while (nCount != 0)
{
nCount--;
}
}
void main(void)
{
/* Initialize I/Os in Output Mode */
GPIO_Init(GPIOE, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOD, GPIO_PIN_ALL, GPIO_MODE_OUT_OD_LOW_FAST);
GPIO_Init(GPIOA, GPIO_PIN_2, GPIO_MODE_IN_PU_NO_IT);
GPIO_ExternalPullUpConfig(GPIOA, GPIO_PIN_2, ENABLE);
//CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
TIM4_TimeBaseInit(TIM4_PRESCALER_128, 15);
TIM4_ClearFlag(TIM4_FLAG_UPDATE);
TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
TIM4_Cmd(ENABLE);
enableInterrupts();
while (1)
{
GPIO_Write(GPIOD, 0xFE);Delay(65000);
GPIO_Write(GPIOD, 0xFD);Delay(65000);
GPIO_Write(GPIOD, 0xFB);Delay(65000);
GPIO_Write(GPIOD, 0xF7);Delay(65000);
GPIO_Write(GPIOD, 0xEF);Delay(65000);
GPIO_Write(GPIOD, 0xDF);Delay(65000);
GPIO_Write(GPIOD, 0xBF);Delay(65000);
GPIO_Write(GPIOD, 0x7F);Delay(65000);
/* Toggles LEDs */
bit_status = GPIO_ReadInputPin(GPIOA, GPIO_PIN_2);
if (bit_status == RESET) //SET or RESET
{
Delay(0xFFFF);
if(bit_status == RESET)
{
GPIO_WriteReverse(GPIOE, GPIO_PIN_5);
GPIO_WriteReverse(GPIOD, GPIO_PIN_ALL);
}
}
}
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval : None
*/
void assert_failed(u8* file, u32 line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{
}
}
#endif
|