?? st79_main.c
字號(hào):
/**
******************************************************************************
* @file st79_main.c
* @brief This file contains the main function.
* @author STMicroelectronics - MCD & APG Car Body Application Labs
* @version V0.01
* @date 04-JUL-2007
******************************************************************************
*
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
* FROM THE CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>© COPYRIGHT 2007 STMicroelectronics</center></h2>
* @image html logo.bmp
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "st79_lib.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
void Delay (u16 nCount);
u8 putchar(u8 c);
u8 getchar(void);
/* Private functions ---------------------------------------------------------*/
void Delay(u16 nCount)
{
/* Decrement nCount value */
while(nCount != 0)
{
nCount--;
}
}
u8 putchar(u8 c)
{
#ifdef PRINT_ON_USART
while(!(USART->SR & USART_SR_TC)); /* Temporary: needed by Library function */
#else
while(!(LINUART->SR & LINUART_SR_TC)); /* Temporary: needed by Library function */
#endif
if (c == '\n')
{
/* put '\r' to hardware here */
#ifdef PRINT_ON_USART
USART_SendData8(USART, '\r');
#else
LINUART_SendData8(LINUART, '\r');
#endif
}
/* put c to hardware here */
#ifdef PRINT_ON_USART
USART_SendData8(USART, c);
#else
LINUART_SendData8(LINUART, c);
#endif
return(c);
}
u8 getchar(void)
{
u8 c;
/* get c from hardware here */
#ifdef PRINT_ON_USART
while(!(USART->SR & USART_SR_RXNE));
c = USART_ReceiveData8(USART);
#else
while(!(LINUART->SR & LINUART_SR_RXNE));
c = LINUART_ReceiveData8(LINUART);
#endif
if (c == '\r')
{
c = '\n';
}
/* return (putchar(c)); */ /* echo */
return(c); /* No echo */
}
/* Public functions ----------------------------------------------------------*/
/**
* @brief Validation firmware main entry point.
* @par Parameters:
* None
* @retval void None
* @par Required preconditions:
* None
* @par Called functions:
* Exhaustive and Functional test functions.
*/
void main(void)
{
GPIO_Init_TypeDef GPIO_InitStructure;
u8 val;
char name[20];
/* Init the MCO pin */
CLK_CCOConfig(CLK_CCOSEL_CPU);
CLK_CCOCmd(ENABLE);
/* Init HSI */
CLK_HSIConfig(DISABLE, CLK_HSI_DIV1);
/* Init I/Os for LEDs */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT_PP_LOW_FAST;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_2 | GPIO_Pin_1 | GPIO_Pin_0; /* LED1, LED2, LED3, LED4 */
GPIO_Init(GPIOH, &GPIO_InitStructure);
/* Init I/Os for LINUART Multiplexer control on ST79F5xx-EVAL board */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT_PP_LOW_FAST;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOG, &GPIO_InitStructure);
GPIO_Write(GPIOG, 0x40); /* Select USART2 connector */
#ifdef PRINT_ON_USART
/* Init USART */
USART_Init(USART,
USART_WordLength_8D,
USART_StopBits_1,
USART_Parity_No,
(USART_Clock_Disable | USART_CPOL_High | USART_CPHA_Middle),
BAUD_RATE,
MASTER_FREQUENCY,
(USART_Mode_Tx_Enable | USART_Mode_Rx_Enable));
#endif
#ifdef PRINT_ON_LINUART
/* Init LINUART */
LINUART_Init(LINUART,
LINUART_WordLength_8D,
LINUART_StopBits_1,
LINUART_Parity_No,
BAUD_RATE,
MASTER_FREQUENCY,
(LINUART_Mode_Tx_Enable | LINUART_Mode_Rx_Enable));
#endif
/* Print message on Hyper terminal */
printf("\n\n");
#ifdef PRINT_ON_USART
printf("(USART)\n");
#else
printf("(LINUART)\n");
#endif
printf("==========================================\n");
printf("=== S T 7 9 Firmware Library ALPHA1 ===\n");
printf("==========================================\n");
printf("Type your name > ");
scanf("%s", name);
printf("\nHello %s !\n", name);
/* Toggles LEDs */
val = 0x00;
while (1)
{
GPIO_Write(GPIOH, val);
val ^= GPIO_Pin_3 | GPIO_Pin_2 | GPIO_Pin_1 | GPIO_Pin_0;
Delay((u16)60000);
Delay((u16)60000);
}
}
/**
* @brief Reports the name of the source file and the source line number where
* the assert error has occurred.
* 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)
* @retval void None
* @par Required preconditions:
* None
* @par Called functions:
* None
*/
#ifdef FULL_ASSERT
void assert_failed(u8 *file, u16 line)
#else
void assert_failed(void)
#endif
{
/* Put enter your own code to manage an assert error */
}
/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -