📄 at91stdio.c
字号:
// ----------------------------------------------------------------------------
// ATMEL Microcontroller Software Support - ROUSSET -
// ----------------------------------------------------------------------------
// DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
// DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// ----------------------------------------------------------------------------
// File Name : at91stdio.c
// Object : stdio functions redefinition
// Creation : Application Group - v1.0 24-Aug-2005
// ----------------------------------------------------------------------------
#include "config.h"
// Definition for _MEMORY case
FILE *stdmem;
//*----------------------------------------------------------------------------
//* \fn fputc
//* \brief
//*----------------------------------------------------------------------------
void DBGU_Init(void)
{
AT91F_DBGU_CfgPIO();
AT91F_US_Configure ((AT91PS_USART) AT91C_BASE_DBGU,
AT91C_MASTER_CLOCK,
AT91C_US_ASYNC_MODE, // mode Register to be programmed
AT91C_BAUDRATE_115200, // baudrate to be programmed
0); // timeguard to be programmed
// Enable Transmitter
AT91F_US_EnableTx((AT91PS_USART) AT91C_BASE_DBGU);
TRACE_INFO("\n\n\r======================================\n\r");
TRACE_INFO("AT91SAM7S Basic IAR\n\r");
TRACE_INFO("======================================\n\r");
}
int fputc(int ch, FILE *f)
{
if(f == stdout){
while (!AT91F_US_TxReady((AT91PS_USART)AT91C_BASE_DBGU));
AT91F_US_PutChar((AT91PS_USART)AT91C_BASE_DBGU, (char)ch);
return ch;
}
if(f == stdmem){
}
return EOF;
}
//*----------------------------------------------------------------------------
//* \fn fgetc
//* \brief
//*----------------------------------------------------------------------------
int fgetc(FILE *f)
{
if(f == stdin){
while(!AT91F_US_RxReady((AT91PS_USART)AT91C_BASE_DBGU));
return((int)AT91F_US_GetChar((AT91PS_USART)AT91C_BASE_DBGU));
}
return EOF;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -