軟件:
STM32CubeMX V4.25.0
System Workbench V2.4
固件庫版本:
STM32Cube FW_F1 V1.6.1
硬件:
OneNet 麒麟座V2.3
在STM32CubeMX中新建項目,選擇正確的MCU型號
首先設置RCC和SYS,如下圖
然后根據板子實際情況設置時鐘(麒麟座外部晶振是12M,STM32F103x的最高主頻是72M),如下圖
配置USART1為Asychronous模式
可以看到PA9和PA10被配置為了USART1_TX, USART1_RX。
UART1配置用默認的115200,8, None和1就好。
Project - setting ,ToolChain/IDE選擇 SW4STM32
勾選這里
保存以后,點擊任務欄的生成代碼圖標
生成完畢以后在彈出的對話框點擊"Open Project", System Workbench自動打開Eclipse并導入和打開了項目。
編輯main.c, 添加如下代碼,其中17為字符串長度(r和n各占一個字符),10為超時時間:
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_UART_Transmit(&huart1,"rnUART Transmitrn",17,10);
HAL_Delay(1000);
}
/* USER CODE END 3 */
然后右鍵點擊項目,選擇Properties, Run-Debug Settings, 點擊右側的New,在彈出對話框中選擇Ac6 STM32 Debugging。
然后任務欄上點擊Run圖,當然會報錯的,原因請查看另一篇我的博客(https://blog.csdn.net/toopoo/article/details/79680323),所以需要右鍵點擊 項目名Run.cfg ,給它改個名字,
然后右鍵點擊項目樹里面的項目名稱,選擇“Propeties”,然后在Run/Debug Settings-選擇項目名-Edit-Main-C/C++Application那里點擊“Search Project”,然后選擇出現的默認的elf文件:
然后在Debugger-User Defined-Browse 那里選擇你自己改名的配置文件:
然后右鍵點擊那個新的cfg文件,選擇"Open With - Text Editor", 進行如下更改:
source [find interface/stlink.cfg] 更改為 source [find interface/stlink-v2.cfg]
reset_config srst_only srst_nogate connect_assert_srst 這一行改為 reset_config none
然后再Run一下,就可以了。
通過串口調試軟件(波特率設為115200)就可以看到它不斷輸出
UART Transmit
那么如何使用printf( )輸出到串口呢,其實官方有個例程。解壓STM32Cube_FW_F1_V1.6.0.zip文件,
打開STM32Cube_FW_F1_V1.6.0ProjectsSTM3210C_EVALExamplesUARTUART_PrintfSW4STM32STM3210C_EVAL的項目,就可以看到main.c里面做了幾件事情:
/* Private function prototypes -----------------------------------------------*/
#ifdef __GNUC__
/* With GCC, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/* Private functions -------------------------------------------------
/* USER CODE BEGIN 0 */
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END 0 */
然后修改main.c的輸出內容:
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
printf("printf function UART1 output test~~!rn");
HAL_UART_Transmit(&huart1,"rnUART Transmitrn",17,10);
HAL_Delay(1000);
}
/* USER CODE END 3 */
最后,不要忘記把STM32Cube_FW_F1_V1.6.0ProjectsSTM3210C_EVALExamplesUARTUART_Printfsyscalls.c 文件復制到src目錄,很多教程沒有提到這點。如果不復制這個文件,那么printf()是不起作用的。再Run一次,就能看到你的輸出內容為
UART Transmit
printf function UART1 output test~~!
UART Transmit
printf function UART1 output test~~!
上一篇:STM32CubeMX學習筆記1:GPIO輸出LED流水燈
下一篇:STM32Hal庫學習(三)CubeMx學習外部中斷
推薦閱讀
史海拾趣
面對日益激烈的市場競爭和不斷變化的市場需求,華瓷始終堅持創新引領的發展戰略。公司加強與高校、科研機構的合作,共同研發新型陶瓷材料和生產技術。同時,華瓷還積極引進國內外先進的生產設備和制造工藝,不斷提升自身的產業水平和核心競爭力。
在華瓷的發展歷程中,一個關鍵的轉折點是在XX年代初,公司成功研發出了一種新型陶瓷材料,這種材料不僅具備優異的耐高溫、耐腐蝕性能,而且在電子元器件的應用中表現出了極高的穩定性和可靠性。這一技術突破使得華瓷迅速在電子行業嶄露頭角,眾多知名電子品牌開始與華瓷合作,使用其陶瓷材料生產高性能的電子元器件。
安路科技(Anlogic)的創立可以追溯到XXXX年,由一群具有深厚技術背景的工程師共同創立。起初,公司規模雖小,但懷揣著在國產FPGA(現場可編程門陣列)領域實現技術突破的夢想。早期,安路科技面臨著資金短缺、市場競爭激烈等挑戰,但團隊憑借著對技術的執著和不懈的努力,逐步研發出了具有競爭力的FPGA產品,并在市場上獲得了一定的認可。
為了進一步提升技術實力和市場競爭力,Fascomp積極尋求與國際知名企業的技術合作。通過與多家跨國公司的聯合研發項目,Fascomp成功吸收和借鑒了國際先進的技術和管理經驗。此外,公司還積極拓展海外市場,產品遠銷歐美、亞洲等多個國家和地區,進一步提升了公司的國際化水平。
隨著技術的不斷積累和市場的不斷拓展,Gems Sensors & Controls公司成功加盟了全球知名的世界500強企業丹納赫集團。這一舉措不僅為公司帶來了更多的資源和支持,也加速了Gems的全球化布局。如今,Gems的生產基地遍布北美、歐洲和亞洲,并在全球范圍內設立了銷售、設計和服務辦事處,能夠為客戶提供更加全面和便捷的服務。
某蘇州半導體公司自成立以來就堅持國際化戰略,積極拓展海外市場。公司擁有一支高素質的研發團隊和技術人員隊伍,不斷引進國際先進技術和設備,提高產品質量和競爭力。同時,公司積極參與國際交流與合作,與國際知名半導體企業建立了長期穩定的合作關系。這些舉措使公司在國際市場上獲得了良好的聲譽和地位,產品遠銷歐美、日韓等國家和地區。隨著公司規模的不斷擴大和實力的不斷增強,某蘇州半導體公司將繼續秉承國際化戰略,推動公司向更高層次、更廣領域發展。
這些故事展示了蘇州半導體公司在不同領域和方面的發展和成就。這些公司憑借自身的技術實力、創新能力和市場洞察力,在激烈的競爭中脫穎而出,成為電子行業的佼佼者。
在今天各類制造廠正在持續地將服務范圍從與用戶協商轉向交鑰匙工程全程承包。用戶則把更多的精力集中在提高核心競爭力,而把自動化和控制的功能委托給自動化的供應商。這就創造了對服務和支持的更大需求,而PAC的多功能、多專業的能力正是可利用和 ...… 查看全部問答∨ |
|
我用的是周立功的EasyFPGA030,它只支持并口下載的,但是現在手上沒有并口的下載線,我的筆記本上也沒有,同學也沒有!!難道又要花幾十甚至幾百去買個并口下載線,望高手指點!!!!!!!!!… 查看全部問答∨ |
|
linux-2.6.18內核移植及根文件系統的制做(簡易) 一、 去 http://www.kernel.org 下載內核,下面以 linux-2.6.18.tar.bz2 為例。 [root@Binnary ~ ]# tar –jxvf linux-2.6.18.tar.bz2 & ...… 查看全部問答∨ |
|
#include #define uint unsigned int #define uchar unsigned char sbit duan=P2^6; //申明U1鎖存器的鎖存端 sbit wei=P2^7; //申U2鎖存器的鎖存端 void ...… 查看全部問答∨ |
|
問題是這樣的,在modelsim se中添加了altera的庫,可以看到了。但是在在quartus中調用modelsim se進行仿真時,仍然默認的是work這個庫,仍然會編譯一大堆的altera的東西,我自己添加的altera的庫沒有起到作用。 請問大俠們,該怎么設置可以在調用m ...… 查看全部問答∨ |
我在做msp430g2553的ADC10外部參考電壓時,想設置一個5V以上的外部參考電壓,可怎么也弄不出來!請各位大蝦指教指教! 下面是我的程序: #include #include \"1602-4.h\" #include \"1602-4.c\" /****************************************** ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 答題抽獎:Mentor Tessent Automotive相關測試解決方案(獎品池還剩不少獎品喲)
- Mouser&TE直播:解鎖智能家居部件新技術,探索連接黑科技
- 全球首款Cortex-M23內核物聯網芯片SAML10和SAM L11系列 闖關獲取SAML10/SAML11法寶,拆除電子界安全危機,贏好禮!
- 有獎電源設計問卷調查
- 直播已結束【用于光伏逆變器/儲能系統的歐姆龍繼電器 /開關/連接器解決方案】
- 【搶樓贏禮】聊聊我用過的MOSFET!
- 【已結束】有獎直播【TI 全新CC2340無線 MCU,助力低功耗藍牙應用】
- 羅姆有獎直播 | 高輸出功率激光二極管—助力激光雷達性能提升
- 有獎評測:50套來自恩智浦全新快速物聯網原型設計套件(價值350元)
- 您的電路保護有足夠的空間嗎?Littelfuse的881系列保險絲迎接這一挑戰