一、硬件連接
二、串口助手設置:
三、keil下編程
1.要添加的工程文件
二要編寫的user文件
1.main.c
#include "printf.h"
int main()
{
printf_init();
printf("luoyiran is a nice boyn");
printf("xixin");
printf("serial communications is so mystical and interesting!n");
printf("keep striving!n");
}
2.printf.c
#include "printf.h"
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_usart.h"
#include "misc.h"
int fputc(int ch,FILE *f)
{
while(USART_GetFlagStatus(USART2,USART_FLAG_TC) != SET);
USART_SendData(USART2,(unsigned char)ch);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC) != SET);
return (ch);
}
/*函數名printf_init()
描述:配置USART2的GPIO口,
工作模式為:比特率115200 數據位:8位 奇偶校驗位:N 停止位:1
輸入:無
輸出:無
****************************/
void printf_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
/*config USART clock*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
RCC_APB1PeriphClockCmd( RCC_APB1Periph_USART2,ENABLE);
/*USART1 GPIO config*/
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_AF_PP; //復用推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IN_FLOATING; //復用開漏輸入
GPIO_Init(GPIOA,&GPIO_InitStructure);
/*USART1 mode Config*/
USART_InitStructure.USART_BaudRate = 115200;
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_Rx | USART_Mode_Tx;
USART_Init(USART2,&USART_InitStructure);
USART_Cmd(USART2,ENABLE);
}
printf.h
#ifndef __printf_H
#define __printf_H
#include "stm32f10x.h"
#include void printf_init(void); int fputc(int ch,FILE *f); #endif 四、編譯文件,點擊load,打開串口調試助手,接上跳線帽子,觀察串口助手打印現象
上一篇:STM32單片機串口功能實現
下一篇:STM32單片機學習筆記——USART串口通信
推薦閱讀
史海拾趣
隨著電子行業的快速發展,市場對CMOS圖像傳感器的需求日益增長。飛虹高科公司意識到,要想在市場中保持領先地位,必須不斷進行技術創新。因此,公司加大了研發投入,引進了一批高端研發設備,并與國內外知名高校和研究機構建立了緊密的合作關系。經過數年的努力,公司成功開發出了多款具有自主知識產權的CMOS圖像傳感器產品,其中一款產品以其高靈敏度、低功耗和低噪聲等優異性能,贏得了客戶的廣泛贊譽。
隨著產品的不斷成熟和市場的日益擴大,Advanced Photonix開始尋求與全球分銷商的合作。在經過一番謹慎的篩選和談判后,公司與全球知名的半導體和電子元器件授權分銷商貿澤電子簽訂了全球分銷協議。這一合作使得Advanced Photonix的產品能夠更快地進入全球市場,同時也提高了公司的知名度和影響力。通過貿澤電子的分銷網絡,Advanced Photonix的光電二極管、混合器件以及光電管等產品得到了廣泛應用,進一步鞏固了公司在電子行業的領先地位。
隨著產品的不斷成熟和市場的日益擴大,Advanced Photonix開始尋求與全球分銷商的合作。在經過一番謹慎的篩選和談判后,公司與全球知名的半導體和電子元器件授權分銷商貿澤電子簽訂了全球分銷協議。這一合作使得Advanced Photonix的產品能夠更快地進入全球市場,同時也提高了公司的知名度和影響力。通過貿澤電子的分銷網絡,Advanced Photonix的光電二極管、混合器件以及光電管等產品得到了廣泛應用,進一步鞏固了公司在電子行業的領先地位。
在電子行業日新月異的背景下,Flextronics(Flexxon Pte Ltd)始終將技術創新視為企業發展的核心動力。公司投入巨資于自動化生產線、智能制造系統和物聯網技術的研發,實現了生產過程的智能化和數字化。這一舉措不僅提升了生產效率,還使得Flextronics在定制化生產、快速響應市場變化方面具備了顯著優勢。隨著5G、物聯網等新興技術的興起,Flextronics更是積極擁抱變革,與多家科技公司合作,共同推動電子產品的創新與發展。
在國內市場取得一定成績后,EIC公司開始將目光投向國際市場。公司積極參加國際電子展會,與國際知名企業進行技術交流與合作,不斷拓展海外市場。通過國際化戰略的實施,EIC的產品逐漸進入了歐洲、北美等發達國家和地區,并在當地建立了完善的銷售和服務網絡。這一過程中,EIC不僅提升了品牌影響力,也積累了豐富的國際化運營經驗。
隨著業務的不斷發展,Fenwal Controls公司開始尋求全球擴張。公司通過建立廣泛的分銷網絡,將產品推廣至全球各地。同時,為了更好地滿足當地市場需求,Fenwal Controls還積極實施本地化戰略,與各地合作伙伴緊密合作,共同開發符合當地市場需求的定制化產品。這些舉措不僅提升了公司的品牌影響力,也進一步鞏固了公司在全球市場的地位。
想換工作的請關注: 電子行業網站高薪招人(深圳) 網站編輯 1) 電子專業畢業,有從事過互聯網編輯工作的經驗; 2) 有自己獨到的信息采集資源,能快速的發現特色主題,并能獨立完成信息的編輯工作. 編輯部經理 1) 有三年以上從事互聯網、電子行 ...… 查看全部問答∨ |
|
嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家 ...… 查看全部問答∨ |
|
各位老大問個ADS的問題 我想裸奔ARM 2440但有AXD調試的時候報 DBE Warning 00056: The statement into which was stepped is singular (i.e. it has no exit) 程序無法跳轉到MAIN函數里面。 我想請教一下是啥問題,我的R0設置為0X30002000 ini ...… 查看全部問答∨ |
|
大家好,小弟想問一下, 在wince os跑起來后能否初始化INT0? 因我用讀GPIO口的方式將INT0作為普通的I/O口來讀取其狀態(因為INT0與GPF0口復用), 讀取完之后,我想把INT0設置為中斷口? 想請教一下如何大家,如何在wince下初始化中端口? ( ...… 查看全部問答∨ |
在IAR編譯器中使用NEC 78K0系列單片機_轉 最近在IAR編譯器下針對NEC的78K0系列單片機作了一些開發。主要原因是IAR的編譯器確實編譯效果不錯啊。最大體現就是編譯出的代碼空間比較小。畢竟人家是專門做編譯器的。 ...… 查看全部問答∨ |