#include "UART.h"
/****************************************
*函數(shù)名稱:UartInit
*輸 入:unFosc 晶振頻率
unBaud 波特率
*輸 出:無
*功 能:串口初始化
******************************************/
VOID UartInit(UINT32 unFosc,UINT32 unBaud)
{
P3_MFP &= ~(P31_TXD0 | P30_RXD0);
P3_MFP |= (TXD0 | RXD0); //P3.0 使能為串口0接收
//P3.1 使能為串口0發(fā)送
UART0_Clock_EN; //串口0時(shí)鐘使能
UARTClkSource_ex12MHZ; //串口時(shí)鐘選擇為外部晶振
CLKDIV &= ~(15<<8); //串口時(shí)鐘分頻為0
IPRSTC2 |= UART0_RST; //復(fù)位串口0
IPRSTC2 &= ~UART0_RST; //復(fù)位結(jié)束
UA0_FCR |= TX_RST; //發(fā)送FIFO復(fù)位
UA0_FCR |= RX_RST; //接收FIFO復(fù)位
UA0_LCR &= ~PBE; //校驗(yàn)位功能取消
UA0_LCR &= ~WLS;
UA0_LCR |= WL_8BIT; //8位數(shù)據(jù)位
UA0_LCR &= NSB_ONE; //1位停止位
UA0_BAUD |= DIV_X_EN|DIV_X_ONE; //設(shè)置波特率分頻
UA0_BAUD |= ((unFosc / unBaud) -2); //波特率設(shè)置 UART_CLK/(A+2) = 115200, UART_CLK=12MHz
UA0_IER |= RDA_IEN; //接收數(shù)據(jù)中斷使能
NVIC_ISER |= UART0_INT; //使能串口0中斷
}
/****************************************
*函數(shù)名稱:UartSend
*輸 入:pBuf 發(fā)送數(shù)據(jù)緩沖區(qū)
unNumOfBytes 發(fā)送字節(jié)總數(shù)
*輸 出:無
*功 能:串口發(fā)送數(shù)據(jù)
******************************************/
VOID UartSend(UINT8 *pBuf,UINT32 unNumOfBytes)
{
UINT32 i;
for(i=0; i
關(guān)鍵字:新唐M051 UART0
引用地址:新唐M051 UART0使用程序
{
UA0_THR = *(pBuf+i);
while ((UA0_FSR&TX_EMPTY) != 0x00); //檢查發(fā)送FIFO是否為空
}
}
/****************************************
*函數(shù)名稱:UART0_IRQHandler
*輸 入:無
*輸 出:無
*功 能:串口0中斷服務(wù)函數(shù)
******************************************/
VOID UART0_IRQHandler(VOID)
{
UINT8 ucData;
if(UA0_ISR & RDA_INT) //檢查是否接收數(shù)據(jù)中斷
{
while(UA0_ISR & RDA_IF) //獲取所有接收到的數(shù)據(jù)
{
while (UA0_FSR & RX_EMPTY); //檢查接收FIFO是否為空
ucData = UA0_RBR; //讀取數(shù)據(jù)
UartSend(&ucData,1); //發(fā)送數(shù)據(jù)
//以下測試接收數(shù)據(jù)用
if(ucData == 0x11) P2_DOUT &= ~0xff;
if(ucData == 0xff) P2_DOUT |= 0xff;
}
}
}
/****************************************
*函數(shù)名稱:main
*輸 入:無
*輸 出:無
*功 能:函數(shù)主體
******************************************/
INT32 main(VOID)
{
// unsigned char i,j;
PROTECT_REG
( //ISP下載時(shí)保護(hù)FLASH存儲(chǔ)器
PWRCON |= XTL12M_EN; //默認(rèn)時(shí)鐘源為外部晶振
while((CLKSTATUS & XTL12M_STB) == 0); //等待12MHz時(shí)鐘穩(wěn)定
CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //設(shè)置外部晶振為系統(tǒng)時(shí)鐘
//以下測試接收數(shù)據(jù)
//P2_PMD=0x5555; //GPIO設(shè)置為輸出模式
)
UartInit(12000000,9600); //波特率設(shè)置為9600bps
while(1)
{
/* j=0;
//發(fā)送數(shù)據(jù)0~255
for(i=0; i<256; i++)
{
UartSend(&j,1);
j++;
Delayms(50);
} */
}
}
上一篇:新唐M051外部中斷1使用程序
下一篇:新唐M051 IIC使用程序
- 熱門資源推薦
- 熱門放大器推薦
小廣播
熱門活動(dòng)
換一批
更多
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
最新單片機(jī)文章
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計(jì)
- 小型傾轉(zhuǎn)旋翼機(jī)的無刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
- 基于GPS自動(dòng)授時(shí)的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
何立民專欄
單片機(jī)及嵌入式寶典
更多熱門文章
- STM8S自學(xué)筆記-004 時(shí)鐘:HSI、HSE與LSI
- 進(jìn)一步降低RISC-V芯片的門檻,西部數(shù)據(jù)核心開源
- 三星可折疊手機(jī)今年銷量突破800萬部,為去年的四倍
- 黑莓手機(jī)正式停用 曾是全球前三
- 2024年iPhone SE設(shè)計(jì)有大變 類似iPhone XR/11
- 流量計(jì)的修補(bǔ)和養(yǎng)護(hù)
- PLC模擬控制的一些想法
- 02-JZ2440裸機(jī)學(xué)習(xí)之存儲(chǔ)管理器
- 【C51自學(xué)筆記】獨(dú)立鍵盤+矩陣鍵盤
- 艾邁斯歐司朗向英飛特電子出售其數(shù)字照明系統(tǒng)歐洲和亞洲業(yè)務(wù)的交易完成
更多每日新聞
- 開啟軟件定義汽車全新未來征程,紅帽車用操作系統(tǒng)即將全面上市
- 車廠&零部件廠大咖說:48V先進(jìn)電源系統(tǒng)創(chuàng)新技術(shù)及產(chǎn)業(yè)化突破
- ROHM開發(fā)出適用于AI服務(wù)器48V電源熱插拔電路的100V功率MOSFET
- 納芯微高壓半橋驅(qū)動(dòng)NSD2622N:為E-mode GaN量身打造高可靠性、高集成度方案
- 3核A7+單核M0多核異構(gòu),米爾全新低功耗RK3506核心板發(fā)布
- 自動(dòng)化控制中智能技術(shù)的應(yīng)用研究
- OEM機(jī)器制造商利用仿真軟件提高效率
- 基于機(jī)器視覺的帶鋼焊縫定位
- 米爾RK3576核心板適配多種系統(tǒng),解鎖多樣化應(yīng)用
- 實(shí)時(shí)控制和通信領(lǐng)域的IT/OT融合如何推動(dòng)工業(yè)自動(dòng)化
更多往期活動(dòng)
- 有獎(jiǎng)國產(chǎn)芯直播:先楫800MHz RISC-V MCU高能秀,豈止控4只伺服電機(jī),干貨多多
- 悅讀 TI DEYISUPPORT 中國工程師精彩博文,答題贏好禮嘍!
- 有獎(jiǎng)直播報(bào)名:英飛凌智能電機(jī)驅(qū)動(dòng)方案
- 發(fā)帖贏好禮 | MPS 工程師為您解決DC-DC設(shè)計(jì)難題
- 【EE征集令】LaunchPad學(xué)習(xí)全體驗(yàn)
- 基于USB PD受電協(xié)議芯片CH224 DIY創(chuàng)意秀
- 全球首款Cortex-M23內(nèi)核物聯(lián)網(wǎng)芯片SAML10和SAM L11系列 闖關(guān)獲取SAML10/SAML11法寶,拆除電子界安全危機(jī),贏好禮!
06月03日歷史上的今天
- 車聯(lián)網(wǎng)行業(yè)發(fā)展前景分析 市場將加速增長
- 英國利用磁共振成像掃描法觀察鈉 研發(fā)下一代高性能鈉電池
- 5G到來!無人駕駛汽車發(fā)展之路將更加寬闊!
- 新能源車電池技術(shù)百花齊放,進(jìn)入加速發(fā)展階段!
- 激光雷達(dá)市場增長強(qiáng)勁 預(yù)期2023年將達(dá)50億美元
- 物聯(lián)網(wǎng)時(shí)代,藍(lán)牙Beacon將無處不在
- 200億資金到賬,LG Display廣州OLED生產(chǎn)線整裝待發(fā)
- 打造5G時(shí)代高速網(wǎng)絡(luò)體驗(yàn),聯(lián)發(fā)科5G多模整合基帶芯片Helio M70
- 醫(yī)療界的福音,英特爾全新人工智能成像解決方案
- 大聯(lián)大友尚推出Realtek車用以太網(wǎng)解決方案
廠商技術(shù)中心