目前共有3篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:台灣正體▼
 
點擊 回復
816 2
【程序】STM32程序中使用printf和scanf函數讀寫串口
一派掌門 二十級
1樓 發表于:2017-2-26 14:22
一派掌門 二十級
2樓 發表于:2017-2-26 14:23
#include <stdio.h>
#include <stm32f10x.h>

// 一定要在工程屬性的Target->Code Generation中勾選Use MicroLIB複選框

int fgetc(FILE *fp)
{
    while ((USART1->SR & USART_SR_RXNE) == 0);
    return USART1->DR;
}

int fputc(int ch, FILE *fp)
{
    USART1->DR = ch;
    while ((USART1->SR & USART_SR_TXE) == 0);
    return ch;
}

int main(void)
{
    int n;
    RCC->APB2ENR = RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPBEN | RCC_APB2ENR_USART1EN;
    GPIOA->CRH = 0x000004b0;
    GPIOA->CRL = 0xb4bb0000;
    
    USART1->BRR = 0x1d4c; // 波特率: 9600
    USART1->CR1 = USART_CR1_UE | USART_CR1_TE | USART_CR1_RE; // 打開串口發送和接收
    
    puts("請輸入一個數: ");
    scanf("%d", &n);
    printf("您輸入的數字是: %d\n", n);
    printf("這個數乘上2後是: %d\n", n * 2);
    
    while (1);
}
 
一派掌門 二十級
3樓 發表于:2017-2-26 14:32
GPIOA->CRL = 0xb4bb0000; 這句話是用來配置SPI1引腳的,因此是多餘的
 

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:816 回複數:2
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2017-2-26 14:32
 
©2010-2025 Purasbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。