使用AVR的USART進行自發自收(將發送引腳RXD短接到接收引腳TXD),發出數據:0,1,2。。。數據,能接收到自己發出的數據:0,1,2。。。使用LED作出簡單指示。
USART自發自收,使用PB口的LED指示接收到的數據,觀察是否與發送的數據一致。
#include
#define DISP_PORT PORTB
#define DISP_DDR DDRB
/*
程序功能:初始化UART為:8位,9.6K,接收中斷
注意事項:基于7.3728M晶振
程序名稱:UART初始化程序
*/
void uart0_init (void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00; //U2X = 0,不加倍數率
UCSRC = 0x86; //固定的
/* 設置幀格式 : 8 個數據位 , 2 個停止位 */
//UCSRC = (1< UBRRL = 47; //set baud rate lo,波特率為9.6K //UBRRL=(fosc/16/(baud+1))%256; fosc是晶振,baud為波特率 UBRRH = 0x00; //set baud rate hi UCSRB = 0x98; //接收中斷允許,接收緩沖自動清空,接收允許 } /*程序名稱:UART接收中斷服務程序*/ #pragma interrupt_handler uart0_rx_isr:12 void uart0_rx_isr(void) { DISP_PORT = UDR;//顯示接收到的數據 //如:接收到"1",顯示0X31 //delay50ms(1); } void mcu_init(void) { CLI(); uart0_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x00; //timer interrupt sources SEI(); //re-enable interrupts } void main() { uint8 counter=0; mcu_init(); DISP_DDR=0xFF; while(1) { UDR=counter++; //發送數據,數據為變量counter while(!(UCSRA&0x40)); //等待發送結束 //Bit 6 – TXC: USART 發送結束 //發送移位緩沖器中的數據被送出,且當發送緩沖器 (UDR) 為空時 //TXC 置位。執行發送結束中斷時 TXC 標志自動清零, //也可以通過寫 1 進行清除操作。 UCSRA|=0x40; //清除發送結束標志位 delay50ms(4); } }
上一篇:AVR 看門狗使用
下一篇:AVR外部中斷INT1檢測按鍵,使用LED作指示
推薦閱讀
史海拾趣
作為一家有社會責任感的企業,Essentra Components公司積極履行社會責任,關注社會公益事業。公司定期參與各種慈善活動和社會公益活動,為當地社區的發展做出了積極貢獻。此外,公司還注重員工的福利和培訓發展,為員工提供了良好的工作環境和發展機會。這些舉措不僅樹立了企業的良好形象,還增強了企業的凝聚力和向心力。
請注意,以上故事是基于對Essentra Components公司業務特性和市場環境的理解而構想出來的,并非實際發生的事件。如有需要,建議直接聯系Essentra Components公司或查閱相關資料以獲取更準確的信息。
在光電技術不斷發展的背景下,Advanced Photonix開始研發太赫茲傳感器產品。這種傳感器產品主要針對無損檢測和質量控制市場,如行李和貨物的安全檢查等。經過長時間的努力,公司成功開發出了一系列高性能的太赫茲傳感器,這些產品憑借其高可靠性和精確性,迅速贏得了市場的青睞。通過與各大航空公司和物流企業的合作,Advanced Photonix的太赫茲傳感器產品在全球范圍內得到了廣泛應用,為公司的快速發展注入了新的動力。
隨著環保意識的提高,電子產品的綠色環保問題日益受到關注。FDI公司積極響應這一趨勢,投入大量資源研發綠色電子產品。公司采用環保材料和生產工藝,推出了一系列符合國際環保標準的電子產品。這些產品不僅具有優良的性能和品質,而且對環境友好,深受消費者的喜愛。
D3公司始終將產品質量放在首位。公司建立了嚴格的質量管理體系,從原材料采購到產品生產、檢驗,每一個環節都嚴格把控。這種對品質的執著追求,使得D3公司的產品在市場上贏得了良好的口碑。同時,公司還注重售后服務,為消費者提供全方位的支持和保障。這種以品質為核心的發展策略,讓D3公司在電子行業中樹立了良好的品牌形象。
成都芯進電子一直致力于打破國外芯片市場的壟斷地位,實現進口替代。他們在電流傳感器領域取得了顯著成果,產品已經全面進入工控、光伏、儲能等領域,并獲得了陽光電源、英威騰、欣旺達、安克等客戶的認可。這一成就不僅展示了公司的技術實力和市場競爭力,也為國產芯片事業的發展做出了積極貢獻。
由于畢業設計需要和本身興趣,要構造ARM+uclinux,本機Linux版本:UBUNTU6 .06. 在本機上安裝了www.uclinux.org上下的arm-elf-tools, 然后arm-elf-gcc-v,顯示如下 Reading specs from /usr/local/lib/gcc-lib/arm-elf/2.95.3/specs gcc ver ...… 查看全部問答∨ |
|
用DS3.2的DriverWized生成一個驅動程序后. 生成的win32 console應用程序無法打開和運行.exe文件. 錯誤提示: Could not execute: Bad executable format (Win32 error 193) Cannot execute program 為什么我的應用程序無法運行? 另外如何直接在D ...… 查看全部問答∨ |
|
在項目中遇到一個問題:需要將一個變量放到一個指定的flash地址里,即flash的絕對地址中。我查看了IAR的complier手冊,上面的例子說以下面的方式定義即可。const int bootKey @ 0x0801FFFC = 3; /* O ...… 查看全部問答∨ |
|
吉時利的2300系列電池/充電器仿真器(快速瞬態響應電源)專用于研發和制造環境中RFIC功放、手機及其它便攜式電池供電產品的功率估計。這些電池仿真電源能從變化量高達1000%(即負載電流增大10倍)的短脈沖負載電流中快速恢復并測量負載電流脈沖的 ...… 查看全部問答∨ |
您會為了匹配您運算放大器電路的輸入 DC 電阻而添加一個電阻器嗎?請看下面圖 1 所示電路。我們中的許多人會教條地認為添加 Rb 是一種“好方法”,并讓其值等于 R1 和 R2 的并聯組合。我們現在就來研究使用這種電阻器的原因,并思考它的使用是否必 ...… 查看全部問答∨ |