概述
本章主要配置printf進(jìn)行打印。 查閱手冊(cè)可以得知,PA9、PA10為串口0的輸出和輸入口。需要GD樣片的可以加群申請(qǐng):615061293。
樣品申請(qǐng)
https://www.wjx.top/vm/wFGhGPF.aspx#
硬件準(zhǔn)備
這里準(zhǔn)備了2塊開發(fā)板進(jìn)行驗(yàn)證,分別是GD32303C_START開發(fā)板。
keil配置
microlib 進(jìn)行了高度優(yōu)化以使代碼變得很小。 它的功能比缺省 C 庫(kù)少,并且根本不具備某些 ISO C 特性。 某些庫(kù)函數(shù)的運(yùn)行速度也比較慢,如果要使用printf(),必須開啟。
串口初始化
對(duì)串口進(jìn)行配置。
/* 使能GPIOB時(shí)鐘*/
rcu_periph_clock_enable(RCU_GPIOA);
/*設(shè)置PA0為浮空輸入 */
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_0);
/* 使能GPI0A,用PA9、PA10為串口 */
rcu_periph_clock_enable(RCU_GPIOA);
/*使能串口0的時(shí)鐘 */
rcu_periph_clock_enable(RCU_USART0);
/*配置USARTx_Tx(PA9)為復(fù)用推挽輸出*/
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
/*配置USARTx_RxPA9)為浮空輸入 */
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
/* USART 配置 */
usart_deinit(USART0);//初始化USART0
usart_baudrate_set(USART0, 115200U);//設(shè)置串口USART0波特率為115200
usart_receive_config(USART0, USART_RECEIVE_ENABLE);//啟用USART0接收
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);//啟用USART0發(fā)送
usart_enable(USART0);//使能USART0
串口重定向
/* retarget the C library printf function to the USART */
int fputc(int ch, FILE *f)
{
usart_data_transmit(USART0, (uint8_t)ch);
while(RESET == usart_flag_get(USART0, USART_FLAG_TBE));
return ch;
}
打印測(cè)試
while(1){
printf("串口0打印!");
delay_1ms(1000);
}
測(cè)試結(jié)果
審核編輯 黃昊宇
-
固件庫(kù)
+關(guān)注
關(guān)注
2文章
97瀏覽量
14918 -
Printf
+關(guān)注
關(guān)注
0文章
81瀏覽量
13608 -
gd32f303
+關(guān)注
關(guān)注
4文章
38瀏覽量
3668
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論