[MM32软件] printf的使用

[复制链接]
 楼主| xixi2017 发表于 2022-5-31 18:35 | 显示全部楼层 |阅读模式
  1. #include "delay.h"

  2. #include "sys.h"

  3. #include "led.h"





  4. /********************************************************************************************************

  5. **函数信息 :main(void)                       

  6. **功能描述 :

  7. **输入参数 :无

  8. **输出参数 :无

  9. ********************************************************************************************************/

  10. int fputc(int ch, FILE *f)

  11. {      

  12.     while((UART1->CSR&UART_IT_TXIEN)==0);//循环发送,直到发送完毕   

  13.     UART1->TDR = (ch & (uint16_t)0x00FF);      

  14.     return ch;

  15. }





  16. int main(void)

  17. {

  18.         unsigned int x=0;

  19.         

  20.         UART_InitTypeDef UART_Uart1;

  21.         GPIO_InitTypeDef GPIO_InitStructure;

  22.         

  23.         UART_Uart1.UART_BaudRate                                                =115200;

  24.         UART_Uart1.UART_HardwareFlowControl        =UART_HardwareFlowControl_None;

  25.         UART_Uart1.UART_Mode                                                                =UART_Mode_Rx | UART_Mode_Tx;

  26.         UART_Uart1.UART_Parity                                                        =UART_Parity_No;

  27.         UART_Uart1.UART_StopBits                                                =UART_StopBits_1;

  28.         UART_Uart1.UART_WordLength                                        =UART_WordLength_8b;

  29.         

  30.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_UART1, ENABLE);        //使能UART1,GPIOA时钟

  31.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);  //开启GPIOA,GPIOB时钟

  32.         //UART 初始化设置

  33.         GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_1);

  34.         GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_1);

  35.         

  36.         UART_DeInit(UART1);

  37.         UART_Init(UART1,&UART_Uart1);

  38.         UART_Cmd(UART1, ENABLE);

  39.         

  40.                 //UART1_TX   GPIOA.9

  41.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9

  42.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  43.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        //复用推挽输出

  44.         GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9

  45.         

  46.         //UART1_RX          GPIOA.10初始化

  47.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10

  48.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入

  49.         GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  

  50.         

  51.         

  52.   delay_init();        

  53.         LED_Init();



  54.     while(1)

  55.     {

  56.                         delay_ms(2000);

  57.                         printf("Hello Blink.....%d\n",x++);        

  58.                         LED1_TOGGLE();                        

  59.                 }



  60. }






printf移植还是非常容易的,我看很多大佬分享了经验。
星辰大海不退缩 发表于 2022-10-15 14:48 | 显示全部楼层
其实讲解的还是不太细,咱们只是会用了而已,仅此而已
sadicy 发表于 2022-10-17 20:26 | 显示全部楼层
只是调试的时候,有些用,实际开发几乎不会用这printf
Stahan 发表于 2022-11-2 20:58 | 显示全部楼层
只要是会用了就行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

2006

帖子

2

粉丝
快速回复 返回顶部 返回列表