/*
采用MSP430地址位多機(jī)協(xié)議通訊程序
微控論壇原創(chuàng)作品 作者:tianxy
各位同仁,響應(yīng)版主號(hào)召,現(xiàn)就"愛好者"同志提出的<<關(guān)于UART的地址位多機(jī)通訊>>做出本人的見解.希望大家多多指點(diǎn).
在 430串口發(fā)送格式中,我們可以看到.一個(gè)字節(jié)由1個(gè)起始位+7位或8位數(shù)據(jù)位+校驗(yàn)位+1位或2位停止組成.如果要使用
430的地址位多機(jī)協(xié)議.主要是將UxCTL寄存器中的MM位置1,同時(shí)將UxRCTL寄存器中的URXWIE置1.
例程如下:
上位機(jī)先用Mark校驗(yàn)方式.格式為:1個(gè)起始位+8位數(shù)據(jù)位+1位校驗(yàn)位+1位停止位.
發(fā)送5個(gè)字節(jié):0x02(地址號(hào)) 0x05(命令字節(jié)) 0x00(預(yù)留字節(jié)) 0x07(累加和校驗(yàn)低字節(jié)) 0x00(累加和校驗(yàn)高字節(jié))
單片機(jī)接收程序如下,同時(shí)將收到的數(shù)據(jù)再返回給上位機(jī).
程序中所使用的變量.請(qǐng)自行定義.有標(biāo)注說明.
Microcontrol CODE
*/
void COM_Init(void)
{
//---------------------------------串口初始化函數(shù)
U0CTL &= ~SWRST;
U0TCTL&=~TXWAKE;
U0CTL|=CHAR+MM;//8bit+地址位多機(jī)協(xié)議
IFG1&=~(URXIFG0+UTXIFG0);//接收,發(fā)送中斷標(biāo)志清零
ME1|=(UTXE0+URXE0); //使能接收和發(fā)送中斷
U0TCTL|=SSEL0+SSEL1; //時(shí)鐘選擇--MCLK
UBR10=0x04;//6M/4800
UBR00=0xe2;
UMCTL0=0x00;//波特率調(diào)整控制
IE1|=URXIE0;//使能接收中斷
URCTL0|=URXWIE;//只有收到地址字符時(shí)才永許中斷
}
#pragma vector=USART0RX_VECTOR//接收中斷處理
__interrupt void USART0RX(void)
{
// addr為本機(jī)地址號(hào)
unsigned char date,date1;
_EINT();
if((URCTL0&0x21)==BIT0)//RXERR
{
//出現(xiàn)錯(cuò)誤且該錯(cuò)誤非溢出引起
URCTL0=URXWIE;//只有收到地址字符時(shí)才允許中斷
ought_receive=0;//應(yīng)接收個(gè)數(shù)變量
mling_flag=0; //命令標(biāo)志變量
order=0;//命令變量
date=RXBUF0;
}
else
{
date=RXBUF0;
URCTL0&=~RXERR;//接收錯(cuò)誤清零
if(URCTL0&URXWIE)//接受到地址位否?
{
if(date==addr)
{
URCTL0&=~URXWIE;
jieshou_ljh=date;
}
order=0;
ought_receive=0;
mling_flag=0;
}
else//接受命令、數(shù)據(jù)
{
date1=date;
if((mling_flag&0x01)==0x00)
{
order=date;
jieshou_ljh+=date;//計(jì)算累加和
switch(date)
{
case 0x05://命令
ought_receive=3;//除命令字節(jié)外還要接收3個(gè)字節(jié)
fmaddr=0;
mling_flag|=0x01;//已收到命令字節(jié),下一字節(jié)應(yīng)為數(shù)據(jù)
break;
default:
URCTL0=URXWIE;
ought_receive=0;
order=0;
mling_flag=0;
jieshou_ljh=0;
P2OUT&=~BIT7;
break;
}
}
else
{
if(ought_receive==0)//接收出錯(cuò)
{
URCTL0|=URXWIE;//只有收到地址字符時(shí)才永許中斷
date1=RXBUF0;
P2OUT&=~BIT7;//RS485 控制信號(hào)
jieshou_ljh=0;
order=0;
mling_flag=0;
}
else
{
if(ought_receive==2)//收到累加和的低位
{
ought_receive=1;
txy=date;
}
else if(ought_receive==1)//收到累加和的高位,表示接收完畢,可以處理并發(fā)送數(shù)據(jù)
{
P2OUT|=BIT7;//RS485 控制信號(hào)
ought_receive=0;
date1=(unsigned char)txy;//計(jì)算累加和.
txy=(unsigned int)date;
txy<<=8;
txy|=date1;
_NOP();
if(jieshou_ljh==txy)
{
IE1&=~URXIE0;//關(guān)閉接收中斷
ME1|=UTXE0;//USART0允許發(fā)送數(shù)據(jù)
UTCTL0|=TXWAKE;//USART0發(fā)送地址位
ME1|=UTXE0;//USART0允許發(fā)送
IFG1&=~(UTXIFG0+URXIFG0);
TXBUF0=addr;//--------------------------------------------------------地址
while((UTCTL0&BIT0)==0);//當(dāng)發(fā)送空時(shí),TXEPT=1
TXBUF0=order;//--------------------------------------------------------命令
while((UTCTL0&BIT0)==0);//當(dāng)發(fā)送空時(shí),TXEPT=1
TXBUF0=0x00;//--------------------------------------------------------預(yù)留
while((UTCTL0&BIT0)==0);//當(dāng)發(fā)送空時(shí),TXEPT=1
TXBUF0=0x07;//--------------------------------------------------------累加和低
while((UTCTL0&BIT0)==0);//當(dāng)發(fā)送空時(shí),TXEPT=1
TXBUF0=0x00;//--------------------------------------------------------累加和高
while((UTCTL0&BIT0)==0);//當(dāng)發(fā)送空時(shí),TXEPT=1
ME1&=~UTXE0;//開始下一次數(shù)據(jù)幀接收
ME1|=URXE0;
IE1&=~(UTXIE0+URXIE0);
IFG1&=~(UTXIFG0+URXIFG0);
ought_receive=0;
jieshou_ljh=0;
URCTL0=URXWIE;
IE1|=URXIE0;
mling_flag=0;
P2OUT&=~BIT7;//轉(zhuǎn)為收
}
}
else if(ought_receive>2)
{
ought_receive--;
jieshou_ljh+=date;//計(jì)算累加和.
receive_buf[fmaddr]=date;//數(shù)據(jù)存放數(shù)組
fmaddr++;
}
}
}
}
}
}
上一篇:關(guān)于MSP430單片機(jī)的大數(shù)組初始化
下一篇:MSP430 SPI接口(模式)通信
推薦閱讀
史海拾趣
為了提高產(chǎn)品質(zhì)量,意華先后通過了ISO9001、ISO14001、IECQC080000等多項(xiàng)國(guó)際質(zhì)量管理體系認(rèn)證。這些認(rèn)證不僅證明了公司的質(zhì)量管理水平,也為客戶提供了更可靠的產(chǎn)品保障。通過持續(xù)的質(zhì)量改進(jìn)和過程控制,意華的產(chǎn)品質(zhì)量得到了顯著提升,贏得了更多客戶的認(rèn)可。
馳芯微公司自2014年成立以來,就立志于打破國(guó)外芯片廠商在車規(guī)級(jí)芯片領(lǐng)域的壟斷。初創(chuàng)時(shí)期,公司面臨著資金短缺、技術(shù)壁壘高和市場(chǎng)競(jìng)爭(zhēng)激烈的挑戰(zhàn)。然而,馳芯微團(tuán)隊(duì)?wèi){借對(duì)技術(shù)的執(zhí)著追求和對(duì)市場(chǎng)的敏銳洞察,成功研發(fā)出了一系列車規(guī)級(jí)智能傳感和控制芯片,并逐漸在行業(yè)中嶄露頭角。經(jīng)過數(shù)年的努力,馳芯微已經(jīng)成為國(guó)內(nèi)車規(guī)級(jí)芯片領(lǐng)域的領(lǐng)軍者,其產(chǎn)品廣泛應(yīng)用于各類前裝量產(chǎn)車型。
隨著電子行業(yè)的快速發(fā)展,Capar Components Corp意識(shí)到只有不斷創(chuàng)新才能在市場(chǎng)中立足。于是,公司加大了對(duì)研發(fā)的投入,引進(jìn)了一批高素質(zhì)的技術(shù)人才。經(jīng)過數(shù)年的努力,公司成功研發(fā)出了一種新型的高性能集成電路,這一創(chuàng)新不僅提升了產(chǎn)品的性能,還降低了生產(chǎn)成本,使公司在市場(chǎng)上獲得了更大的競(jìng)爭(zhēng)優(yōu)勢(shì)。
Diodes公司積極實(shí)施全球化戰(zhàn)略,不斷拓展海外市場(chǎng)。公司在以色列、加利福尼亞、得克薩斯和日本等地設(shè)立了制造工廠,形成了覆蓋全球的生產(chǎn)和銷售網(wǎng)絡(luò)。這些工廠不僅為Diodes提供了充足的產(chǎn)能支持,也為公司贏得了更多國(guó)際客戶的青睞。同時(shí),Diodes還積極參加國(guó)際展會(huì)和交流活動(dòng),加強(qiáng)與國(guó)際同行的合作與交流,不斷提升公司的國(guó)際化水平。
Advanced Microelectronic Products Inc(以下簡(jiǎn)稱AMP公司)在電子行業(yè)中嶄露頭角,源于其一次關(guān)鍵的技術(shù)突破。公司研發(fā)團(tuán)隊(duì)成功開發(fā)出一種新型高效能、低功耗的芯片,該芯片在智能手機(jī)市場(chǎng)具有廣闊的應(yīng)用前景。憑借這一技術(shù)優(yōu)勢(shì),AMP公司迅速與多家手機(jī)制造商建立合作關(guān)系,實(shí)現(xiàn)了市場(chǎng)的大規(guī)模擴(kuò)張。公司隨后進(jìn)一步加大研發(fā)投入,不斷推出創(chuàng)新產(chǎn)品,鞏固了其在行業(yè)內(nèi)的領(lǐng)先地位。
AMP公司深知人才是企業(yè)發(fā)展的核心動(dòng)力。因此,公司高度重視人才培養(yǎng)和團(tuán)隊(duì)建設(shè)。公司建立了一套完善的人才培養(yǎng)機(jī)制,通過內(nèi)部培訓(xùn)、外部引進(jìn)等方式,不斷提升員工的專業(yè)技能和綜合素質(zhì)。同時(shí),公司還注重團(tuán)隊(duì)建設(shè),鼓勵(lì)員工之間的合作與交流,營(yíng)造積極向上的工作氛圍。這些舉措為AMP公司的持續(xù)發(fā)展提供了有力的人才保障。
利用無刷電機(jī)作為驅(qū)動(dòng)元件,以 %&’作為控制芯片,實(shí)現(xiàn)了對(duì)數(shù)控雕刻機(jī)的伺服驅(qū)動(dòng)與控制。測(cè)試結(jié)果表明,基于無刷電機(jī)的數(shù)控雕刻機(jī)克服了傳統(tǒng)伺服電機(jī)的不利因素,控制簡(jiǎn)單,伺服精度高,并具有很高的運(yùn)行速度,有效提高了雕刻機(jī)的工作效率… 查看全部問答∨ |
我有點(diǎn)不理解,ARM硬件內(nèi)核我看過資料,有一點(diǎn)了解,但軟件內(nèi)核有l(wèi)inux為什么還要自已做內(nèi)核呢?… 查看全部問答∨ |
DSP硬件設(shè)計(jì)的一些注意事項(xiàng) 時(shí)鐘電路選擇原則 1,系統(tǒng)中要求多個(gè)不同頻率的時(shí)鐘信號(hào)時(shí),首選可編程時(shí)鐘芯片; 2,單一時(shí)鐘信號(hào)時(shí),選擇晶體時(shí)鐘電路; 3,多個(gè)同頻時(shí)鐘信號(hào)時(shí),選擇晶振; 4,盡量使用DSP片內(nèi)的PLL,降低片外時(shí)鐘頻率,提高系統(tǒng)的穩(wěn)定性; 5,C6000、C5510、C5409A、C54 ...… 查看全部問答∨ |
我在PC機(jī)下進(jìn)行錄音,然后通過TCP/IP傳送到ARM9板子(WinCE6.0操作系統(tǒng),UDA1380音頻編解碼芯片)上進(jìn)行播放,但是播放不了。用的都是wave系列操作函數(shù)。 我錄音和放音的設(shè)置都是: waveform.wFormatTag=W ...… 查看全部問答∨ |
我現(xiàn)在調(diào)試RIL驅(qū)動(dòng),ril proxy的調(diào)試信息可以通過修改注冊(cè)表打印出來。 但CELLTSP不知怎樣顯示出來,因?yàn)镃ELLTSP沒有源代碼的,如果不用DEBUG模式,怎樣才能顯示CELLTSP的調(diào)試信息? … 查看全部問答∨ |
|
上次發(fā)了金剛狼開發(fā)板的諜照,現(xiàn)在已被證實(shí)確實(shí)為金鋼狼的官方開發(fā)板。鏈接:https://bbs.eeworld.com.cn/thread-321290-1-1.html在最近的一次視頻中展示,得到了該開發(fā)板正常工作的功耗截圖?!? 查看全部問答∨ |
|
考慮到FR5739的鐵電存儲(chǔ)功能和3 軸加速計(jì)模塊,可以做一個(gè)可以斷電保存的記步器,通過對(duì)加速度計(jì)的數(shù)據(jù)做一定的計(jì)算和處理可以做一款計(jì)步器,在現(xiàn)有模塊的基礎(chǔ)上需要增加一塊LCD,做簡(jiǎn)單的顯示,同時(shí)由于可以掉電保存,還可以 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于AVR EVK1105的移動(dòng)遠(yuǎn)程桌面多媒體設(shè)備
- 基于AVR EVK1105平臺(tái)的兒童伴睡寶方案設(shè)計(jì)
- 基于AVR的太陽能高速公路智能電子顯示屏設(shè)計(jì)
- 基于MIPS32設(shè)計(jì)的智能電網(wǎng)家庭用電監(jiān)控系統(tǒng)
- 基于Cerebot MX4開發(fā)板的家用智能監(jiān)控系統(tǒng)整體方案設(shè)計(jì)
- 確定運(yùn)算放大器輸出驅(qū)動(dòng)能力的方法分析
- 寵物狗無線感知交互系統(tǒng)軟硬件設(shè)計(jì)
- stm32晶振不起振的原因 stm32單片機(jī)的基本工作原理
- 從三個(gè)層次來介紹用于機(jī)器人主控板的設(shè)計(jì)思想
- 人工智能在汽車行業(yè)中的應(yīng)用
- 麥格納集成式艙內(nèi)感知系統(tǒng) 引領(lǐng)車輛安全創(chuàng)新
- 2025世界人工智能大會(huì)上的各種機(jī)器人
- 際上導(dǎo)航:高精度組合定位感知技術(shù)在智能輔助駕駛中的應(yīng)用
- 量產(chǎn)元年的人形機(jī)器人,要破局C端?
- 上半年賺304億元的寧德時(shí)代,給出固態(tài)電池量產(chǎn)時(shí)間表
- 新泗威車載后排航空座椅控制顯示器 | 申報(bào)2025第七屆金輯獎(jiǎng)最佳技術(shù)實(shí)踐應(yīng)用獎(jiǎng)
- L3 智駕,需要?dú)⑹旨?jí)座艙
- 2025動(dòng)力電池中場(chǎng)戰(zhàn)局,正力新能“三化策略”應(yīng)戰(zhàn)
- 智能手機(jī)共存解決方案協(xié)同合作使用共用天線
- 走近 AI 重磅新品 STM32N6,解鎖在 MCU 部署高性能、節(jié)能型邊緣 AI!答題有好禮~還有開發(fā)板等你拿!
- 泰克專家邀你了解大數(shù)據(jù)時(shí)代全新解決方案,參與翻蓋有禮!
- 【限時(shí)福利】學(xué)邊緣AI,得NXP FRDM-MCXN947開發(fā)板!表現(xiàn)優(yōu)異再加碼200元京東卡!Follow me第三季第2期報(bào)名中
- EEWorld邀你來拆解(第五期):拆拆排插學(xué)評(píng)電路
- 【已結(jié)束】TE 直播|如何有效應(yīng)對(duì)當(dāng)下測(cè)試測(cè)量領(lǐng)域的挑戰(zhàn)
- 看帖打卡賺現(xiàn)金:挑戰(zhàn)21天學(xué)習(xí)freertos,打卡成長(zhǎng)&賺外快
- TI嵌入式直播月:深入探究嵌入式產(chǎn)品在工業(yè)和汽車中的新應(yīng)用
- TI 工業(yè)知識(shí)挑戰(zhàn)賽番外篇!
- 有獎(jiǎng)評(píng)測(cè):100套東芝最小光繼電器TLP3547的評(píng)估板免費(fèi)申請(qǐng)中!
- 主攻4D毫米波成像雷達(dá),幾何伙伴獲約4億元Pre-A輪融資
- semiengineering:成熟制程芯片缺貨情況大盤點(diǎn)
- WSJ:三星和英特爾即將正面對(duì)決 現(xiàn)金才是關(guān)鍵
- 華為哈勃入股了OLED驅(qū)動(dòng)芯片廠商歐錸德
- 菲律賓首都重新封城,或會(huì)影響三星、村田被動(dòng)元件出貨
- STM32之啟動(dòng)文件詳解
- 51單片機(jī)內(nèi)存擴(kuò)展:從片內(nèi)ROM跳轉(zhuǎn)到片外ROM
- 教你給51單片機(jī)擴(kuò)展片外RAM
- 帶你梳理下ARM代碼編譯鏈接的工作流程
- ARM處理器工作模式及寄存器結(jié)構(gòu)