下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 stm32串實(shí)驗(yàn): stm32通過 usart1進(jìn)串收發(fā), PA9(TX)和 PA10(RX)這是stm32開發(fā)中較簡單的實(shí)驗(yàn),原理是通過串助發(fā)送信息,stm32接收到信息以后在串助中打印相同的內(nèi)容。這直接分享keil5程代碼,是在程模板的基礎(chǔ)上移植和修改了正點(diǎn)原的串代碼(如果失效的話可以在下評論留下郵箱,我看到會(huì)給你發(fā)份)順便把usart.c和usart.h還有mian.c中的代碼復(fù)制到下,伙伴可以直接移植到的程中實(shí)現(xiàn)的效果也在下放上串助中顯的圖usart.c1 #include sys.h2 #include usart.h345 /STM32F103核板例程6 /庫函數(shù)版本例程7 /*
2、 出品 */8910 /11 /如果使ucos,則包括下的頭件即可.12 #if SYSTEM_SUPPORT_UCOS13 #include includes.h14 #endif/ucos 使15 /16 /STM32開發(fā)板17 /串1初始化1819 /202122 /23 /加以下代碼,持printf函數(shù),不需要選擇use MicroLIB24 #if 125 #pragma import(_use_no_semihosting)26 /標(biāo)準(zhǔn)庫需要的持函數(shù)27 struct _FILE28 29 int handle;3031 ;3233 FILE _stdout;34 /定義_sys_
3、exit()以避免使半主機(jī)模式35 void _sys_exit(int x)36 37 x = x;38 39 /重定義fputc函數(shù)40 int fputc(int ch, FILE *f)41 42 while(USART1-SR&0X40)=0);/循環(huán)發(fā)送,直到發(fā)送完畢43 USART1-DR = (u8) ch;44 return ch;45 46 #endif4748 /*使microLib的法*/49 /*50 int fputc(int ch, FILE *f)51 52 USART_SendData(USART1, (uint8_t) ch);5354 while (USA
4、RT_GetFlagStatus(USART1, USART_FLAG_TC) = RESET) 5556 return ch;57 58 int GetKey (void) 5960 while (!(USART1-SR & USART_FLAG_RXNE);6162 return (int)(USART1-DR & 0 x1FF);63 64 */6566 #if EN_USART1_RX /如果使能了接收67 /串1中斷服務(wù)程序68 /注意,讀取USARTx-SR能避免莫名其妙的錯(cuò)誤69 u8 USART_RX_BUFUSART_REC_LEN; /接收緩沖,最USART_REC_LEN
5、 個(gè)字節(jié).70 /接收狀態(tài)71 /bit15, 接收完成標(biāo)志72 /bit14, 接收到0 x0d73 /bit130, 接收到的有效字節(jié)數(shù)74 u16 USART_RX_STA=0;75/接收狀態(tài)標(biāo)記 76 void uart_init(u32 bound)77 /GPIO端設(shè)置78 GPIO_InitTypeDef GPIO_InitStructure;79 USART_InitTypeDef USART_InitStructure;80 NVIC_InitTypeDef NVIC_InitStructure;8182 RCC_APB2PeriphClockCmd(RCC_APB2Peri
6、ph_USART1|RCC_APB2Periph_GPIOA, ENABLE);/使能USART1,GPIOA時(shí)鐘83/USART1_TX PA.984 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;/PA.985 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;86 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /復(fù)推挽輸出87 GPIO_Init(GPIOA, &GPIO_InitStructure);8889 /USART1_RXPA.1090 GPIO
7、_InitStructure.GPIO_Pin = GPIO_Pin_10;91 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;/浮空輸92 GPIO_Init(GPIOA, &GPIO_InitStructure);9394 /Usart1 NVIC 配置9596 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;97 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= 3 ;/搶占優(yōu)先級(jí)398 NVIC_InitStructur
8、e.NVIC_IRQChannelSubPriority = 3;99 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;/優(yōu)先級(jí)3/IRQ通道使能100 NVIC_Init(&NVIC_InitStructure); /根據(jù)指定的參數(shù)初始化VIC寄存器101102 /USART 初始化設(shè)置103104 USART_InitStructure.USART_BaudRate = bound;/般設(shè)置為9600;105 USART_InitStructure.USART_WordLength = USART_WordLength_8b; /字長為8位數(shù)據(jù)
9、格式106 USART_InitStructure.USART_StopBits = USART_StopBits_1;/個(gè)停位107 USART_InitStructure.USART_Parity = USART_Parity_No;/奇偶校驗(yàn)位108 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; /硬件數(shù)據(jù)流控制109 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; /收發(fā)模式110111 USA
10、RT_Init(USART1, &USART_InitStructure); /初始化串112 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);/開啟中斷113 USART_Cmd(USART1, ENABLE);/使能串114115 116117118119 void USART1_IRQHandler( void)/串1中斷服務(wù)程序120121 u8 Res;122 #ifdef OS_TICKS_PER_SEC123 OSIntEnter();124 #endif/如果時(shí)鐘節(jié)拍數(shù)定義了,說明要使ucosII了.125 if(USART_GetI
11、TStatus(USART1, USART_IT_RXNE) != RESET) /接收中斷(接收到的數(shù)據(jù)必須是0 x0d 0 x0a結(jié)尾)126127128129130131132133134135136137138139140141142143144145146147Res =USART_ReceiveData(USART1);/(USART1-DR); /讀取接收到的數(shù)據(jù)if(USART_RX_STA&0 x8000)=0)/接收未完成if(USART_RX_STA&0 x4000)/接收到了0 x0dif(Res!=0 x0a)USART_RX_STA=0;/接收錯(cuò)誤,重新開始else
12、 USART_RX_STA|=0 x8000; /接收完成了else /還沒收到0X0Dif(Res=0 x0d)USART_RX_STA|=0 x4000;elseUSART_RX_BUFUSART_RX_STA&0X3FFF=Res ;USART_RX_STA+;if(USART_RX_STA(USART_REC_LEN- 1)USART_RX_STA=0;/接收數(shù)據(jù)錯(cuò)誤,重新開始接收148 #ifdef OS_TICKS_PER_SEC149 OSIntExit();150 #endif/如果時(shí)鐘節(jié)拍數(shù)定義了,說明要使ucosII了.151 152 #endifusart.h1 #ifn
13、def _USART_H2 #define _USART_H3 #include stdio.h4 #include sys.h56 /STM32F103核板例程7 /庫函數(shù)版本例程 8 /* 出品 */910 /11 /STM32開發(fā)板12 /串1初始化1314 #define USART_REC_LEN15 #define EN_USART1_RX16200 /定義最接收字節(jié)數(shù) 200/使能(1)/禁(0)串1接收117 extern u8 USART_RX_BUFUSART_REC_LEN; /接收緩沖,最USART_REC_LEN 個(gè)字節(jié).末字節(jié)為換符18 extern u16 USA
14、RT_RX_STA; /接收狀態(tài)標(biāo)記19 /如果想串中斷接收,請不要注釋以下宏定義20 void uart_init(u32 bound);21 #endifmain.c1 #include sys.h2 #include delay.h3 #include usart.h45 uint8_t t;6 uint8_t len;7 uint16_t times=0;89 int main(void)10 11 delay_init(); /延時(shí)函數(shù)初始化12 uart_init(115200); /串初始化為1152001314 while(1)1516171819202122232425262728293031323334 if(USART_RX_STA&0 x8000) /USART_RX_STA第六位為1則括號(hào)內(nèi)為1,表接收完數(shù)據(jù)len=USART_RX_STA&0 x3fff;/得到此次接收到的數(shù)據(jù)長度printf(rn您發(fā)送的消息為:rnrn);for(t=0;tlen;t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無人機(jī)在工程測量中的應(yīng)用
- 石河子大學(xué)《網(wǎng)頁設(shè)計(jì)與制作》2023-2024學(xué)年期末試卷
- 石河子大學(xué)《軟件項(xiàng)目管理》2023-2024學(xué)年期末試卷
- 石河子大學(xué)《混凝土結(jié)構(gòu)原理道橋方向》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《電路(二)》2023-2024學(xué)年期末試卷
- 沈陽理工大學(xué)《中國文化概論》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《現(xiàn)代設(shè)計(jì)方法》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《嵌入式系統(tǒng)與Ke》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》2021-2022學(xué)年期末試卷
- 沈陽理工大學(xué)《功能型交互設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 安全生產(chǎn)監(jiān)督體系完整
- 輸電線路工程基礎(chǔ)施工方案
- DG-TJ 08-2358-2021 人造山工程技術(shù)標(biāo)準(zhǔn)
- 人工工日單價(jià)計(jì)算表
- 廉潔風(fēng)險(xiǎn)防控手冊
- 小學(xué)生交通安全知識(shí)-PPT課件
- 《中國古代文學(xué)史——杜甫》優(yōu)秀PPT課件
- 仁愛英語九年級(jí)下冊Unit5Topic1sectionA的教學(xué)設(shè)計(jì)
- 魯東教師心理健康期末考試復(fù)習(xí)題及參考答案
- 【教師必備】部編版五年級(jí)語文上冊第五單元【集體備課】
- 商業(yè)空間設(shè)計(jì)PPT課件
評論
0/150
提交評論