历史上的今天
今天是:2024年09月16日(星期一)
2021年09月16日 | STM32的printf使用
2021-09-16 来源:eefocus
#include //加入以下代码,支持printf函数,而不需要选择use MicroLIB #if 1 #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 void _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0); USART1->DR = (u8) ch; return ch; } #endif void uart_init(u32 bound) { //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟 //USART1_TX GPIOA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9 //USART1_RX GPIOA.10初始化 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10 //USART 初始化设置 USART_InitStructure.USART_BaudRate = bound;//串口波特率 USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式 USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位 USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式 USART_Init(USART1, &USART_InitStructure); //初始化串口1 USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);//开启串口接受中断 USART_Cmd(USART1, ENABLE); //使能串口1 } 同样调用的时候对应的源文件也需要包含stdio.h
史海拾趣
|
今天有网友要到关于LTC1745模数转换器的资料,我查了一下,虽然没有找到中文的,但这篇英文资料对LTC1745的介绍还是比较全的,在这里分享出来,希望对其他的网友也能有加大的帮助。 LTC1745 - Low Noise,12-Bit, 25Msps ADC 特点Sample Rate: ...… 查看全部问答> |
|
各位高手,本人正在学习windows CE bootloader开发,目前参考张东泉的《Windows CE实用开发技术》及Windows CE help文件按照以下步骤进行实验: set _WINCEROOT=C:\\wince500 cd C:\\wince500\\public\\common\\oak\\misc Wince ARMV4I CEBASE ...… 查看全部问答> |
|
按照PXA270的DATASHEET,我开启了电源管理单元时钟,设置协处理器器cp14的C7,即PWRMODE[VC]=1,通过专门的I2C接口,向电源芯片发送电压改变的命令,为何测不到输出的SCL信号?但是,读PVCR,值一直为0x4014,即[VCSA]=1,说明正在与电源芯片通信, ...… 查看全部问答> |
|
我主程序中的一段代码运行时修改软件优先级由Level 0(I1=1,I0=0)到Level 1(I1=0,I0=1),把外部端口PB1的优先级设置为Level 1(I1=0,I0=1),希望这样可以在执行该段代码时不被外部中断PB1打断。可调试中发现PB1中断还是能够打断该段代 ...… 查看全部问答> |
|
在使用DHCP获取失败后,系统会用AUTOIP来配置IP。我想让他DHCP失败后就用STATIC 静态IP。曾试过配置lwipopts.h来关闭AUTOIP,好像它也不会用静态IP。 问题1:我想在DHCP失败后就用STATIC 静态IP,该怎么做? 问题2:AUTOIP不是很明白,能帮我解释 ...… 查看全部问答> |
|
关于LM3S811例程中watchdog 的startup_rvmdk.S文件 第一次打开LM3S811例程中watchdog,运行后,一个LED灯闪烁。 想自己建立一个工程,但是把watchdog.c移植到新建的工程后一直看不到效果。 刚开始以为设置的不对,就拿例程和自己的工程一个一个进行比较,发现不是设置的问题。 最后发现是startup_ ...… 查看全部问答> |
|
1、监控摄像机标明DC12V/AC24V通用,该选择什么样的电源? 答:选择AC24V监控电源,因为同样的传输距离,电压越高,损耗越小。电压高了,负载就能得到比较充足的电压。同时,由于采用交流24V,在调试摄像机的时候,可以选择电源同步,使整个监控 ...… 查看全部问答> |




