?? main.c
字號:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: litiantian
** Created date: 2007-03-19
** Version: 1.0
** Descriptions: UART3自動波特率實驗
**
**------------------------------------------------------------------------------------------------------
** Modified by: Liuyanlong
** Modified date: 2007-09-03
** Descriptions: 對代碼風格和注釋進行規范、校對
**
** Rechecked by: Litiantian
********************************************************************************************************/
#include "config.h"
#include <stdio.h>
/*********************************************************************************************************
** 函數名稱 :UART3_SendByte
** 函數功能 :向串口3發送一字節數據,并等待發送完畢,查詢方式。
** 入口參數 :dat 要發送的數據
** 出口參數 :無
*********************************************************************************************************/
void UART3_SendByte(char dat)
{
U3THR = dat;
while ((U3LSR & 0x40) == 0); // 等待數據發送完畢
}
/**********************************************************************************************************
** 函數名稱 :UART3_SendStr
** 函數功能 :向串口發送一個字符串
** 入口參數 :str 字符串首字符指針
** 出口參數 :無
**********************************************************************************************************/
void UART3_SendStr(char *str)
{
while (1)
{
if (*str == '\0')
{
break; // 遇到結束符,退出
}
UART3_SendByte(*str++); // 發送數據
}
}
/*********************************************************************************************************
** 函數名稱 :main
** 函數功能 :等待“A”或者“a”,自動設定波特率,然后將設定的波特率參數發送回PC。
** 調試說明 :1、需要PC串口顯示終端軟件如EasyARM.exe;
** 2、需將TXD0、RXD0分別與P4.28、P4.29短接;同時將IR_RXD、IR_TXD與P4.28、4.29斷開;
** 3、本工程需在RAM中調試;
** 4、若在設置EasyARM.exe的波特率時彈出“不能打開該端口”信息;請繼續調試;若調試不成功,
** 再檢查串口連接路徑和設置的波特率。
*********************************************************************************************************/
int main(void)
{
char str[64];
uint32 baud;
uint16 dlm, dll;
PCONP |= 1 << 25; // 打開UART3
/* 初始化相關的I/O口 */
PINSEL9 = (0x03 << 24) | (0x03 << 26); // 設置P4.28和P4.29連接到UART3
U3ACR = 0x03; // 允許自動波特率
while ((U3ACR & 0x01) != 0); // 等待自動波特率完成
/* 讀取除數鎖存器的值 */
U3LCR = 0x83; // DLAB=1
dlm = U3DLM;
dll = U3DLL;
U3LCR = 0x03;
baud = (Fpclk / (16 * (256 * dlm + dll)));
sprintf(str, "Hello! Baud is %4d bps", baud);
UART3_SendStr(str); // 向串口發送字符串
while (1);
return (0);
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -