
在用STM32用作开发时,网上例程都是KEIL下运行的,但是现在好多都是IAR下运行,在研发中加入串口打印便于调试,以下是printf函数的定义,已通过验证 ( o& ~' c) u8 |" K: h2 r 0 C7 R t* h6 Q% H- E% ~ H; R int fputc(int ch, FILE *f)0 a: K: L; T: X- |/ J { /* 写一个字节到USART1 */ USART_SendData(USART1, (uint8_t) ch); 4 M. W, n7 b+ Q /* 等待发送结束 */( i. `' H" g0 o, ]3 x$ A while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)1 V+ b- |, W/ ~4 \) l {} 9 j+ ^8 x) Z/ E1 ^" ^ return ch;7 s0 _& S. j4 z" {8 L$ `$ Y }* [ s* L+ A% {! G! x3 c3 O9 k /*2 C' X0 x7 i2 X+ {; B ********************************************************************************************************* * 函 数 名: fgetc- J* v, ?2 r" |( b8 B * 功能说明: 重定义getc函数,这样可以使用scanff函数从串口1输入数据0 K5 e0 H+ @$ l4 F8 P * 形 参: 无( m' k" U" s: ~+ u- q4 s$ q$ I * 返 回 值: 无% c9 ~# ?+ x' R+ A$ i *********************************************************************************************************$ a# {) X! o" {# u+ Z */ int fgetc(FILE *f)5 K* y4 X% i9 m2 ^$ ?/ ~ {; v. Q+ |0 U. c' y4 h /* 等待串口1输入数据 */2 o" q. k. b3 f5 F6 v& T# U while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); return (int)USART_ReceiveData(USART1); } % T& C7 Y3 r! _1 [+ t |
这样keil和IAR都能用,不用改什么东西!
你的这个我试试看啊,之前我把keil教程的代码复制到IAR下不能用
恩,试过了,能行,很不错,请问你对STM32控制外部FLASH这块清楚吗,我遇到了一个问题,可以请教下您吗
是啊,已通过验证
不是,要是SPI就简单了,但是类似于SPI