中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        STM32 keil printf的使用

        作者: 時間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
        請在MDK(keil)工程屬性的“Target“-》”Code Generation“中勾

        選”Use MicroLIB

        本文引用地址:http://www.antipu.com.cn/article/201611/315976.htm

        前提是你有一個完整keil的工程 比如ADC的調(diào)試的時候很多時候用到串口 這里教你怎么樣使

        用Printf 函數(shù)

        紅色字句為重點?。。。?!

        若使得在程序中使用Printf需做一下幾步
        1,輸入輸出文件包含#include
        2,在程序下添加宏定義代碼

        /* Private function prototypes -----------------------------------------------*/

        #ifdef __GNUC__
        /* With GCC/RAISONANCE, 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 ---------------------------------------------------------*/

        3,添加如下2個函數(shù) usart配置 和 重定向 C庫的printf函數(shù)

        /* System Clocks Configuration */

        void RCC_Configuration(void)
        {
        /* Enable GPIO clock */
        RCC_APB2PeriphClockCmd(USARTy_GPIO_CLK | USARTz_GPIO_CLK | RCC_APB2Periph_AFIO, ENABLE);

        #ifndef USE_STM3210C_EVAL
        /* Enable USARTy Clock */
        RCC_APB2PeriphClockCmd(USARTy_CLK, ENABLE);
        #else
        /* Enable USARTy Clock */
        RCC_APB1PeriphClockCmd(USARTy_CLK, ENABLE);
        #endif
        /* Enable USARTz Clock */
        RCC_APB1PeriphClockCmd(USARTz_CLK, ENABLE);
        }

        /* System Clocks Configuration */

        /* Configure the GPIO ports */

        void GPIO_Configuration(void)
        {
        GPIO_InitTypeDef GPIO_InitStructure;

        #ifdef USE_STM3210C_EVAL
        /* Enable the USART3 Pins Software Remapping */
        GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);

        /* Enable the USART2 Pins Software Remapping */
        GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
        #elif defined(USE_STM3210B_EVAL) || defined(USE_STM32100B_EVAL)
        /* Enable the USART2 Pins Software Remapping */
        GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
        #endif

        /* Configure USARTy Rx as input floating */
        GPIO_InitStructure.GPIO_Pin = USARTy_RxPin;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(USARTy_GPIO, &GPIO_InitStructure);

        /* Configure USARTz Rx as input floating */
        GPIO_InitStructure.GPIO_Pin = USARTz_RxPin;
        GPIO_Init(USARTz_GPIO, &GPIO_InitStructure);

        /* Configure USARTy Tx as alternate function push-pull */
        GPIO_InitStructure.GPIO_Pin = USARTy_TxPin;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_Init(USARTy_GPIO, &GPIO_InitStructure);

        /* Configure USARTz Tx as alternate function push-pull */
        GPIO_InitStructure.GPIO_Pin = USARTz_TxPin;
        GPIO_Init(USARTz_GPIO, &GPIO_InitStructure);
        }

        /* Configure the GPIO ports */

        /* USARTy configuration ------------------------------------------------------*/

        void USART_Configuration()
        {

        USART_InitTypeDef USART_InitStructure;
        USART_InitStructure.USART_BaudRate = 230400;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1;
        USART_InitStructure.USART_Parity = USART_Parity_Even;
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

        /* Configure USARTy */
        USART_Init(USARTy, &USART_InitStructure);
        /* Configure USARTz */
        USART_Init(USARTz, &USART_InitStructure);

        }

        /* USARTy configuration ------------------------------------------------------*/

        /*Retargets the C library printf function to the USART. */
        PUTCHAR_PROTOTYPE
        {
        USART_SendData(USART1, (uint8_t) ch);


        while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
        {}

        return ch;
        }

        /*Retargets the C library printf function to the USART. */

        3,然后就可以在main()調(diào)用

        printf("The is a example!" );

        printf("%s%c%c%c%c%c%s",
        "#**",
        Value/256,Value%6,
        &,
        Value_2/256,Value_2%6,
        "**%");

        之類的輸出函數(shù)



        關(guān)鍵詞: STM32keilprint

        評論


        技術(shù)專區(qū)

        關(guān)閉