历史上的今天
今天是:2024年12月13日(星期五)
2018年12月13日 | STM32的printf使用
2018-12-13 来源: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
}
上一篇:STM32之编码器模式学习
史海拾趣
|
如果用ads开发 是不是每个程序都要用到44b0的启动代码 不同程序启动代码都一样吗 我听说用iar开发不用启动代码 和用keil一样 44b0+iar+jtag 可以吗… 查看全部问答> |
|
一. 波特率 并行通信中,传输速率是以每秒传送多少字节(B / S)来表示。而串行通信中,传输速率在基波传输的情况下(不加调制,以其固有的频率传送)是用每秒钟传送的位数(bit/s)即波特率来表示。因此,1波特=1位/秒。 最常用的标 ...… 查看全部问答> |
|
受两位大美女的邀请,来eew做客啦,大家有什么关于PCB的问题可以发帖,一般我半天内就能回答了的,关于本人的特性可以到网上找一下,riverpeak可以找到我写过的几篇文章,看完后就了解我啦。 本人不爱研究Protel,所以看到Protel相关的帖子我一般 ...… 查看全部问答> |
|
程序实现功能如下: 通过clk的脉冲,在recive=0时统计clk的跳变数,达到计时的目的,再把时间通过4个七段数码管显示出来。 程序代码如下: library ieee; use ieee.std_logic_1164.all; entity device is port(clk   ...… 查看全部问答> |
|
今天兴高采烈的在调 PWM程序 弄示波器探头接触引脚的时候 貌似出现了点火花 我也没太在意 出现了波形 可是频率差了点 于是乎准备重新载程序 突然就出现了 我想估计芯片毁了… 查看全部问答> |
|
请教各位: 在BIOS中,我用TSK0调用函数test(),硬件中断INT1调用T0ISR().运行程序后,程序一直进入T0ISR(),而不调用\\"任务\\"对象.不应该是在两次中断之间的时间里,会调用TSK0吗?或者是需要什么API函数调用? 部分程序 ...… 查看全部问答> |
|
小川工作室编写,本书为LM3S的USB芯片编写,上传的均为草稿,还有没修改,可能还有很多地方不足,希望各位网友原谅! QQ:2609828265 TEL:15882446438 E-mail:paulhyde@126.com 第九章 Mass Storage设备 9.1 Mass Stor ...… 查看全部问答> |




