關(guān)于STM32串口通信USART的一些個(gè)人淺見:
1:對STM32中文數(shù)據(jù)手冊解讀之后,相信大家對USART串行通信有些了解,學(xué)習(xí)51的時(shí)候也都接觸過,使用串口只要弄明白原理就很簡單了
發(fā)送和接收數(shù)據(jù)的過程從圖上可以直觀的看出
USART串口通信涉及到幾個(gè)重要的寄存器
1:)狀態(tài)寄存器
3)波特比率寄存器
例:若要設(shè)置比特率為9600,那么DIV就是468.75,則此寄存器的高12位應(yīng)存值:468,低4位存值:0.75*16=12(十進(jìn)制小數(shù)換算成十六進(jìn)制小數(shù));最后將整數(shù)和小數(shù)拼接:BRR=468<<4+12;(詳細(xì)過程可參照源代碼;)
4)控制寄存器1:
5)控制寄存器2:
主要配置停止位,時(shí)鐘極性,時(shí)鐘使能
6)控制寄存器3:
涉及到硬件流控制,DMA配置等
發(fā)送數(shù)據(jù):
接收數(shù)據(jù):
相關(guān)程序:
中斷函數(shù):
void USART1_IRQHandler(void)
{
static u8 ch;
USART_ClearFlag(USART1 , USART_FLAG_TC);
if(USART_GetITStatus(USART1, USART_IT_RXNE) != Bit_RESET)
{
ch=USART_ReceiveData(USART1);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == Bit_RESET); USART_SendData(USART1, ch);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC));
}
}
主程序:
int main()
{
usart_init();
while(1);
}
配置程序:
void usart_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
USART_DeInit(USART1);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl =
USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_Init(USART1, &USART_InitStructure);
USART_Cmd(USART1, ENABLE);
USART_ITConfig (USART1,USART_IT_RXNE,ENABLE);
USART_ClearFlag(USART1,USART_FLAG_TC);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
(以上內(nèi)容均為個(gè)人淺見,如有不恰之處,請指正,謝謝!)
上一篇:STM32輸入捕獲(一)
下一篇:STM32外部中斷筆記(一)
推薦閱讀
史海拾趣
隨著全球?qū)Νh(huán)境保護(hù)和可持續(xù)發(fā)展的重視日益加深,Eltek公司也積極響應(yīng)這一趨勢。在產(chǎn)品研發(fā)和生產(chǎn)過程中,Eltek公司始終堅(jiān)持環(huán)保理念,采用環(huán)保材料和工藝,減少對環(huán)境的影響。同時(shí),Eltek公司還加大了在可再生能源領(lǐng)域的投入力度,積極研發(fā)具有更高效率和更低成本的電力電子產(chǎn)品。此外,Eltek公司還積極參與各種環(huán)保活動(dòng)和公益事業(yè),為推動(dòng)全球可持續(xù)發(fā)展貢獻(xiàn)自己的力量。
以上五個(gè)故事雖然是虛構(gòu)的,但其中所蘊(yùn)含的發(fā)展思路、創(chuàng)新精神和國際化視野是電子行業(yè)公司普遍需要關(guān)注和借鑒的。希望這些故事能為您提供一些啟示和靈感。
在1976年,GTC(General Transistor Corp.)作為一家獨(dú)立的電子元器件分銷商和生產(chǎn)商在美國正式成立。這一時(shí)期,電子行業(yè)正處于快速發(fā)展階段,晶體管、集成電路等新型電子元件的應(yīng)用日益廣泛。GTC憑借其敏銳的市場洞察力和技術(shù)實(shí)力,迅速在市場中站穩(wěn)腳跟。公司初期專注于分銷高質(zhì)量的晶體管、二極管等電子元器件,并逐漸建立起穩(wěn)定的供應(yīng)鏈和客戶群。
Bedford Opto公司在成立初期,面臨著激烈的市場競爭和技術(shù)瓶頸。然而,公司的研發(fā)團(tuán)隊(duì)通過不懈努力,成功開發(fā)出一款具有革命性的光電傳感器。這款產(chǎn)品不僅提高了信號傳輸?shù)男剩€降低了能耗,迅速在市場上獲得了認(rèn)可。Bedford Opto公司因此逐漸在電子行業(yè)中嶄露頭角。
隨著國內(nèi)市場的飽和,Bedford Opto公司開始尋求國際化擴(kuò)張的機(jī)會(huì)。通過與國外知名企業(yè)的合作,公司成功打入國際市場,并獲得了更多的業(yè)務(wù)機(jī)會(huì)。同時(shí),公司還積極參與國際技術(shù)交流與合作,不斷提升自身的技術(shù)水平和創(chuàng)新能力。
近年來,電子行業(yè)經(jīng)歷了深刻的變革,新興技術(shù)的不斷涌現(xiàn)給Bedford Opto公司帶來了前所未有的挑戰(zhàn)。然而,公司憑借敏銳的市場洞察力和靈活的戰(zhàn)略調(diào)整,成功應(yīng)對了這些變革。通過加大研發(fā)投入,積極引進(jìn)新技術(shù),公司不斷推出新產(chǎn)品,保持了市場競爭優(yōu)勢。
Defense Logistics Agency(DLA)于1961年成立,是美國國防部(DOD)的一個(gè)獨(dú)立作戰(zhàn)支援機(jī)構(gòu)。在成立初期,DLA就明確了其戰(zhàn)略定位:為全球范圍內(nèi)的美軍及國防部其他部門提供統(tǒng)一、高效的后勤保障服務(wù)。這一戰(zhàn)略定位的確立,為DLA的后續(xù)發(fā)展指明了方向。
Keil C51開發(fā)系統(tǒng)基本知識(shí)(3) 2. 第二節(jié) 幾類重要庫函數(shù)1. 1. 專用寄存器include文件例如8031、8051均為REG51.h其中包括了所有8051的SFR及其位定義,一般系統(tǒng)都必須包括本文件。2. 2. 絕對地址include文件absacc.h該文件中實(shí)際只定義了幾個(gè)宏,以確定各存儲(chǔ)空間的絕對地址。3. 3 ...… 查看全部問答∨ |
編的程序 , 有待完善 , 共同探討!!!!!順便 秀一下 MAQ PC91 的無線耳麥, 下午剛到!!!共同交流!!!extern void WRITE_M_BYTE(uint8_t M_BYTE ) //write instruction to flash{&nb ...… 查看全部問答∨ |
有誰用過藍(lán)海微芯ARM7 S3C44B0的開發(fā)板?探討探討 我用藍(lán)海微芯的ARM開發(fā)板怎么感覺特別爛啊! RTC模塊根本不能用!他們給的測試程序沒有RTC測試。 在BIOS里面設(shè)置時(shí)間根本設(shè)置不上。 打電話咨詢才知道板子發(fā)布之前RTC都沒有調(diào)出來,后來還是發(fā)布了,到現(xiàn)在為止他們還沒有找到問題原因。 另外一 ...… 查看全部問答∨ |
小弟在看多線程,正看win32 多線程程序設(shè)計(jì), 書挺好,適合入門, 就是自己只看書,沒什么練習(xí)的實(shí)例, 也是剛接觸線程,自己想不出什么東西來練手。 就想請教各位高手,有沒有什么適合初學(xué)者類似上機(jī)實(shí)驗(yàn)的練習(xí)呀。 多謝各位。… 查看全部問答∨ |
如何擦除S3C2410的自帶的LINUX操作系統(tǒng),暫時(shí)先把它變成一個(gè)單片機(jī)用 我最近買了一個(gè)ARM9的開發(fā)板(S3C2410),上面自帶了LINUX操作系統(tǒng),但目前對其不太清楚.并且想從基礎(chǔ)一步一步開始 所以想擦掉其中的LINUX,使其成為一個(gè)單片機(jī)用,以便先熟悉下2410各個(gè)模塊驅(qū)動(dòng)程序的編寫.之后再進(jìn)行一些OS的移植操作等等   ...… 查看全部問答∨ |
網(wǎng)上都說用createfile,Writefile和readfile一步步來。 1.我用writefile返回值為1.表明發(fā)送成功。 但是WriteFile( hidDevice, OutputReport,flaglen,&TransBytes, NULL); 其中的flaglen這個(gè)參數(shù)只能用宏定義的#define flaglen 155L ...… 查看全部問答∨ |
狀態(tài)機(jī)思路在單片機(jī)程序設(shè)計(jì)中的應(yīng)用 狀態(tài)機(jī)是軟件編程中的一個(gè)重要概念。比這個(gè)概念更重要的是對它的靈活應(yīng)用。在一個(gè)思路清晰而且高效的程序中,必然有狀態(tài)機(jī)的身影浮現(xiàn)。 比如說一個(gè)按鍵命令解析程序,就可以被看做狀態(tài)機(jī):本來在A狀態(tài)下,觸發(fā)一個(gè) ...… 查看全部問答∨ |
硬件部分: 無線模塊已經(jīng)調(diào)試好 GPS模塊已經(jīng)買到 430開發(fā)板正在發(fā)給小車控制部分的成員 車模有現(xiàn)成的直接可以用 軟件部分: 上位機(jī)軟件正在制作中 其他硬件驅(qū)動(dòng)代碼也在編寫中 … 查看全部問答∨ |
三極管工作在飽和區(qū)怎么實(shí)現(xiàn)集電結(jié)正偏???? NPN管運(yùn)行在飽和區(qū)時(shí),書上都會(huì)說發(fā)射極跟集電極都要正偏,但是按所有書上的標(biāo)法,如在集電極接一電源VCC,正極都連入集電極,負(fù)極連到射極。我不明白的是此時(shí)集電PN結(jié)實(shí)際上是反偏的而不是正偏的。看到有資料上寫,實(shí)際在三極管飽和時(shí)所說集電極都 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 全主動(dòng)懸架國產(chǎn)化落地,未來也能“人人買得起”?
- 第三方激光雷達(dá)ASIC方案,能改變行業(yè)格局嗎?
- 為何端到端成為各車企智駕布局的首要選擇?
- 智能網(wǎng)聯(lián)汽車組合駕駛輔助系統(tǒng)安全要求立項(xiàng)制定,東風(fēng)、華為等參與起草
- 從高精地圖到VLA,一場技術(shù)路線的競速
- 韓國團(tuán)隊(duì)開發(fā)自動(dòng)駕駛軟件 透明障礙物識(shí)別準(zhǔn)確率達(dá)96%
- OpenGMSL?聯(lián)盟宣告成立 推動(dòng)未來車載連接技術(shù)變革
- 高通完成對V2X芯片企業(yè)Autotalks收購,強(qiáng)化車聯(lián)網(wǎng)通信
- “磷酸鐵鋰需求激增,寧德時(shí)代等電池巨頭鎖定未來五年大單”
- 面壁智能端側(cè)大模型首日上線,英特爾工程師聯(lián)合優(yōu)化實(shí)現(xiàn)2.2倍推理效率躍升
- 將低功耗設(shè)計(jì)進(jìn)行到底——評論、轉(zhuǎn)發(fā)贏大禮!
- 芯幣競拍:感恩教師節(jié)專場
- Keysight示波器主題月有獎(jiǎng)系列活動(dòng)之 注冊大獎(jiǎng)天天抽 搶樓踩中亦有獎(jiǎng)
- Microchip有獎(jiǎng)直播:VectorBlox™ SDK 報(bào)名中
- 有獎(jiǎng)直播|ADI 慣性MEMS應(yīng)用那些事
- 借助 Microchip 生態(tài)系統(tǒng)中的 PIC® 和 AVR® 單片機(jī)開啟嵌入式到云端之旅 系列在線研討會(huì)
- 帶你零起點(diǎn)入門STM32(專為嵌入式應(yīng)用而開發(fā)的內(nèi)核)
- 福祿克首款熱成像萬用表Fluke-279FC 即將上市!填寫問卷贏好禮嘍!
- EEWorld Datasheet 伴你同行!快來領(lǐng)取200芯積分福利啦~
- 泰克福袋:示伴功倍,萬能福袋派送中
- 益登科技聯(lián)手Boréas共同開拓高精度觸覺反饋商機(jī)
- 各戰(zhàn)隊(duì)云端“群雄逐鹿” “先導(dǎo)杯”五月戰(zhàn)果出爐
- ST全新穿戴設(shè)備參考設(shè)計(jì)可提供接觸者溯源功能
- Vicor 高效率電源模塊可讓機(jī)器人活得更久
- 扇出式封裝市場預(yù)計(jì)2021年觸底反彈
- 51單片機(jī)系列知識(shí)1--單片機(jī)的內(nèi)外結(jié)構(gòu)
- 51單片機(jī)系列知識(shí)2--存儲(chǔ)器(1)
- 51單片機(jī)系列知識(shí)3--存儲(chǔ)器(2)
- 51單片機(jī)系列知識(shí)4--并口(1)
- STM32F103程序設(shè)計(jì)-5-控制引腳高低電平的實(shí)現(xiàn)