1.說在前面:
清明三天小假期,放松一下無可厚非,但是,依舊要完成自己的學習任務
2.串口通信的簡單介紹:
1.將串口作為一個溝通的渠道,可以和外界進行接收和發送信號
2.STM32和串口相關的寄存器:
2-1:USART_SR(狀態寄存器):存儲著MCU的一些狀態
2-2:USART_DR(數據寄存器):暫存著一些數據信息
2-3:USART_BRR(波特率寄存器:暫存波特率信息
2-4:USART_CRI(控制寄存器):用于給usart進行使能
3.注:波特率的計算方法:
只要給出相應的時鐘頻率和設置usartdiv,就可以計算出波特率
3.串口通訊的簡單配置和使用
1.其實基于庫函數而言:需要有一個理順的思路,知道每一步需要做什么,然后去尋找相應的庫函數
2.怎樣實現串口通訊呢?
1.串口時鐘和GPIO時鐘使能
2.串口復位(不必須)
3.GPIO設置:注意rxd和txd在設置過程中設置輸入輸出方法的不同(AF_PP|IN_FLOATING)
4.串口參數初始化(這里面要初始化蠻多參數的,但是要記住每個參數的設定,通信雙方要約定參數一致)
5.開啟中斷,使能 NVIC
6.實現串口的使能
7.編寫中斷處理函數
8.實現串口數據的收發
9.實現串口傳輸狀態獲取
#include"stm32f10x.h"
void my_USART_Init()
{
GPIO_InitTypeDef GPIO_InitStruct;
USART_InitTypeDef USART_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
//1.時鐘使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//ENABLE THE GPIOA
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//ENABLE THE USART1
//2.GPIOA9 init
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;//復位推挽輸出
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9 ;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
//2.GPIOA10 init
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;//浮空輸入
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
//3.usart init
USART_InitStruct.USART_BaudRate=115200;//設置波特率
USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//設置硬件流設置
USART_InitStruct.USART_Mode= USART_Mode_Rx | USART_Mode_Tx;//設置模式
USART_InitStruct.USART_Parity=USART_Parity_No;//不采用奇偶校驗
USART_InitStruct.USART_StopBits=USART_StopBits_1;//1位停止位
USART_InitStruct.USART_WordLength=USART_WordLength_8b;//8位數據位
USART_Init(USART1,&USART_InitStruct);
//初始化某串口
USART_Cmd(USART1,ENABLE);//′串口使能
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//實現中斷
//中斷優先級
NVIC_InitStruct.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStruct);
}
//中斷處理函數
void USART1_IRQHandler(void)
{
u8 res;
if(USART_GetITStatus(USART1,USART_IT_RXNE))//?D???D???£ê?
{
res= USART_ReceiveData(USART1);
USART_SendData(USART1,res);
}
}
int main()
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級
my_USART_Init();
while(1);
}
上一篇:stm32與絕對式編碼器的ssi接口進行通信
下一篇:Stm32 iic初始化介紹
推薦閱讀
史海拾趣
在電子行業中,FINDER公司(即Finder芬德)的發展歷程充滿了創新與進取的故事。以下是五個關于FINDER公司發展起來的相關故事,每個故事均基于事實進行描述:
1. 創立與初步發展
故事背景:FINDER公司由Piero Giordanino于1954年創立,當時他憑借對電子技術的深刻理解和遠見卓識,決定投身于繼電器制造領域。在成立初期,FINDER專注于研發和生產高質量的繼電器產品,以滿足當時市場對電子元器件日益增長的需求。
關鍵事實:Giordanino在1949年就已經獲得了第一步繼電器的專利,這為他后來創立FINDER公司奠定了堅實的基礎。隨著技術的不斷積累和市場的逐步開拓,FINDER逐漸在繼電器領域嶄露頭角。
2. 產品多樣化與技術創新
故事背景:在成立后的幾十年里,FINDER公司不斷推出新產品,實現了產品線的多樣化。從最初的單一繼電器產品,逐步擴展到包括步進繼電器、光敏繼電器、工業繼電器、微型和超薄繼電器、功率繼電器、定時器繼電器插座和配件等多個領域。
關鍵事實:截至當前,FINDER已生產超過14,500種不同類型的機電和電子設備,產品廣泛應用于工業自動化、建筑、家庭和辦公室等多個領域。同時,FINDER還致力于技術創新,不斷研發出具有更高性能、更可靠性的新產品。
3. 全球化布局與市場拓展
故事背景:隨著公司規模的擴大和產品線的豐富,FINDER開始將目光投向全球市場。通過設立分支機構、建立銷售網絡以及與國際知名企業的合作,FINDER逐步實現了全球化布局。
關鍵事實:目前,FINDER已經在全球范圍內設立了多個分支機構和銷售網絡,覆蓋歐洲、美洲、亞洲和非洲等地區。同時,FINDER還與德國SIEMENS、日本OMRON等世界知名電子企業并列為全球三大繼電器制造商之一,在歐洲市場享有極高的盛譽。
4. 質量控制與環保生產
故事背景:在快速發展的同時,FINDER始終將產品質量放在首位。通過嚴格的質量控制體系和環保生產標準,FINDER確保了產品的卓越品質和可持續發展。
關鍵事實:FINDER的每個產品在出廠前都經過兩個徹底的測試周期以確保最高水平的質量。此外,FINDER還尊重國家和歐盟的環保規范,確保其產品符合現行立法要求。在生產過程中采用環保材料和技術減少對環境的影響。
5. 行業認可與榮譽
故事背景:由于卓越的產品質量和持續的技術創新,FINDER在電子行業中獲得了廣泛的認可和贊譽。公司不僅贏得了眾多客戶的信賴和支持還獲得了多項行業榮譽和認證。
關鍵事實:FINDER的產品已經通過了三十多個國家四十多個產品安全認證這充分證明了其在產品質量和安全方面的卓越表現。同時FINDER還被評為全球擁有最多質量認證的繼電器制造商之一這進一步鞏固了其在行業中的領先地位。
這些故事共同展現了FINDER公司在電子行業中的發展歷程和成就。從創立初期的艱難起步到如今的全球知名企業FINDER憑借其卓越的產品質量、持續的技術創新以及全球化布局贏得了廣泛的認可和贊譽。
在激烈的市場競爭中,CWIND公司始終堅持以客戶為中心的服務理念。公司建立了完善的客戶服務體系,為客戶提供從產品咨詢、購買到售后服務的全方位支持。同時,公司還注重品牌建設和宣傳推廣工作。通過加大廣告投放力度、舉辦品牌活動等方式,CWIND逐漸提升了品牌知名度和美譽度。在消費者心中樹立起了良好的品牌形象和口碑效應。
Cypress Semiconductor于1982年在美國加州的硅谷成立,這里是全球半導體行業的發源地之一。公司起初專注于高性能IC產品的研發和生產,為數據傳輸、遠程通訊等領域提供解決方案。隨著技術的不斷發展和市場的擴大,Cypress逐漸將業務拓展至全球,并在多個國家和地區建立了生產基地和設計中心。
作為一家以技術創新為核心競爭力的企業,微芯生物始終保持著對新技術和新領域的關注和研究。他們不斷投入資金和資源用于研發創新藥物和新技術平臺,并積極探索新的治療方法和應用領域。通過持續的創新和突破,微芯生物在生物醫藥領域取得了顯著的成績和貢獻,也為公司的發展注入了源源不斷的動力。
以上五個故事是基于微芯生物的發展經歷而虛構的,但它們也反映了電子行業中許多公司可能面臨的發展挑戰和機遇。在電子行業中,技術的創新、市場的拓展、并購整合、國際合作以及持續的創新與突破都是推動公司發展的重要因素。
為了進一步提升市場份額和品牌影響力,DIOTECH公司開始加大市場拓展力度。通過參加國際電子展會、舉辦新品發布會等活動,公司成功吸引了全球范圍內的客戶和合作伙伴的關注。同時,公司還加強了品牌建設,通過一系列營銷活動提升了品牌知名度和美譽度。這些努力使得DIOTECH逐漸成為了電子行業內的知名品牌。
在全球化趨勢的推動下,安國國際積極拓展海外市場,與全球多家知名企業和研究機構建立了緊密的合作關系。通過與國際伙伴的技術合作和市場共享,安國得以更快地了解市場需求和技術動態,加速產品研發和市場推廣。同時,公司還加強了對全球供應鏈的管理和優化,確保產品質量和交貨期的穩定性。這些舉措為安國國際在全球市場的競爭提供了有力支持。
這五個故事展示了安國國際在電子行業中的發展歷程和取得的成就。從創業初期的USB鍵盤集線器控制芯片研發到產品線拓展、組織架構調整、專注于U盤控制IC開發以及全球化布局與合作伙伴關系的建立,安國國際始終堅持以技術創新為驅動,以市場需求為導向,不斷提升自身的核心競爭力和市場份額。
在wince開發程序遇到了問題,個人判斷應該是unicode 編碼問題 在wince開發程序遇到了問題,個人判斷應該是unicode 編碼問題,比如有如下問題; CString a("$ABCDE"); 個人認為a.left(6)應該是="$ABCDE",結果返回值是"$",難道CString 不支持unicode?,left函數參數不應該是字符數量嗎? 另外希望本 ...… 查看全部問答∨ |
|
首先,我用kmalloc(30*sizeof(char),GFP_DMA)分配了兩段存儲空間,分別作為源地址和目的地址,就是想要通過dma方式把源地址的數據傳送到目的地址。 我采用的是信道0,設置了其相應寄存器, (源地址和目的地址寄存器的值是通過 virt_to_phys(mem) ...… 查看全部問答∨ |
請問Altium Designer 6的library里面找不到intel的8031或者8051怎么辦 請問Altium Designer 6的library里面找不到intel的8031或者8051怎么辦,是去下載個元件庫嗎???能不能給個有效的鏈接,,謝謝了.… 查看全部問答∨ |
我用MAX436對信號進行處理 MAX436的資料看了,但實際上用的時候和理論上相反 想請教一下高手來幫助下 我是按照MAX.PDF文件里的圖12那圖連接方法,各個參數是與圖13的那些參數一樣 但出來的信號時衰減的啊 而且,我調節RL,信號的幅值在中心幅 ...… 查看全部問答∨ |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:59 編輯 中國互聯網巨頭盛大推出的電子書內測價格讓整個電子閱讀器產業感到了前所未有的“寒意”,而友達大規模進軍電子書屏幕市場使得電子書屏幕一直被一家企業壟斷的格局即將被打破,加上其他企業也 ...… 查看全部問答∨ |
|
本帖最后由 ddllxxrr 于 2016-1-7 17:10 編輯 今天閑來沒事,突然有寫點東西的沖動。寫什么呢,從大三開始入手學習電子技術,從最開始的51單片機開始學起,一步一步爬到現在,學DSP,學專用芯片。多多少少積累了點經驗,今天就說說購買元器 ...… 查看全部問答∨ |
小弟最近在做dsp5509向sd卡寫入速度的測試實驗,可是實驗結果相當的不理想,要么是寫的數據不完整,要么是寫入速度太慢了,用的芯片是5509.有沒有哪位大俠做過相關這方面的測試,能和小弟交流下么qq:106703178email:lovejy984@163.com不勝感激啊 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創新升級
- 工業市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析