野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15981|回复: 19

串口通信,用USART1_printf()编译出错问题

[复制链接]
发表于 2014-6-23 13:58:01 | 显示全部楼层 |阅读模式
有人用野火mini板子做了串口通信实验吗?
源程序里面用的是printf(),我自己又在主函数里面加了USART1_printf( USART1, "\r\n 你好 \r\n" );
然后usart.h文件里面包含了stdio.h和stdarg.h
而且也加了void USART1_printf(USART_TypeDef* USARTx, uint8_t *Data,...);

但是编译后有一个错误
求解啊谢谢


回复

使用道具 举报

发表于 2014-6-23 14:27:07 | 显示全部楼层
说好的错误呢?  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-23 14:37:30 | 显示全部楼层
fire 发表于 2014-6-23 14:27
说好的错误呢?

火哥好,我现在不方便打开工程编译啊,但我记得错误好像是unfind usart_printf 什么什么的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-23 14:40:13 | 显示全部楼层
fire 发表于 2014-6-23 14:27
说好的错误呢?

奥对了又好像是undefind usart_printf什么什么的
回复 支持 反对

使用道具 举报

发表于 2014-6-23 15:27:52 | 显示全部楼层
泪无痕 发表于 2014-6-23 14:40
奥对了又好像是undefind usart_printf什么什么的

那就是调用这个函数的文件没有声明。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-23 15:30:34 | 显示全部楼层
fire 发表于 2014-6-23 15:27
那就是调用这个函数的文件没有声明。

火哥好,刚才打开工程编译了一下,结果如下:
串口通信.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-23 15:32:03 | 显示全部楼层
fire 发表于 2014-6-23 15:27
那就是调用这个函数的文件没有声明。

那要怎么声明啊,代码怎么写,在哪声明啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-23 18:03:55 | 显示全部楼层
fire 发表于 2014-6-23 15:27
那就是调用这个函数的文件没有声明。

请问怎么写??这个程序怎么改才可以用上USART_printf()函数啊????
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-23 18:11:55 | 显示全部楼层
fire 发表于 2014-6-23 15:27
那就是调用这个函数的文件没有声明。

火大哥,我在头文件里面已经写了void USART1_printf(USART_TypeDef* USARTx, uint8_t *Data,...);还要怎么声明啊,源程序串口通信用的是printf,我就是加了句USART1_printf什么什么,要怎样才能用上USART1_printf来打印信息呢,还要写上哪些东西才行呀
回复 支持 反对

使用道具 举报

发表于 2014-6-23 18:43:29 | 显示全部楼层
泪无痕 发表于 2014-6-23 18:11
火大哥,我在头文件里面已经写了void USART1_printf(USART_TypeDef* USARTx, uint8_t *Data,...);还要怎 ...

那你在调用 这个函数的文件里面包含 写了 void USART1_printf(USART_TypeDef* USARTx, uint8_t *Data,...); 的头文件
回复 支持 反对

使用道具 举报

发表于 2014-6-23 18:43:54 | 显示全部楼层
泪无痕 发表于 2014-6-23 18:11
火大哥,我在头文件里面已经写了void USART1_printf(USART_TypeDef* USARTx, uint8_t *Data,...);还要怎 ...

或者  你把 printf 注释掉,看看问题出在哪里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-23 19:16:11 | 显示全部楼层
fire 发表于 2014-6-23 18:43
或者  你把 printf 注释掉,看看问题出在哪里

注释掉了还是那个错误啊,要不火哥您直接发个用USART_printf写的串口通信那个例程吧,不用中断的,就用普通方式就行,当成工程文件一起打包好发给我吧好吗好吗,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-23 19:18:09 | 显示全部楼层
fire 发表于 2014-6-23 18:43
或者  你把 printf 注释掉,看看问题出在哪里

火大哥麻烦您了,怕上火喝王老吉
回复 支持 反对

使用道具 举报

发表于 2014-6-23 19:56:22 | 显示全部楼层
泪无痕 发表于 2014-6-23 19:16
注释掉了还是那个错误啊,要不火哥您直接发个用USART_printf写的串口通信那个例程吧,不用中断的,就用普 ...

这个就是了,你看下哪里不一样,这个也是书里面的讲解历程。
1-野火M3-USART1(polling).rar (1.7 MB, 下载次数: 50)
回复 支持 反对

使用道具 举报

发表于 2014-6-23 19:56:35 | 显示全部楼层
泪无痕 发表于 2014-6-23 19:18
火大哥麻烦您了,怕上火喝王老吉

还是加多宝吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-23 20:35:08 | 显示全部楼层
fire 发表于 2014-6-23 19:56
还是加多宝吧

呵呵谢谢火哥,不过挺奇怪,编译无错误无警告,但是有个C文件里面却有两个红叉叉
回复 支持 反对

使用道具 举报

发表于 2014-6-23 21:22:25 | 显示全部楼层
泪无痕 发表于 2014-6-23 20:35
呵呵谢谢火哥,不过挺奇怪,编译无错误无警告,但是有个C文件里面却有两个红叉叉

没关系,这是MDK高版本对c的语法检查。
回复 支持 反对

使用道具 举报

发表于 2014-7-27 16:53:23 | 显示全部楼层
fire 发表于 2014-6-23 21:22
没关系,这是MDK高版本对c的语法检查。

火哥 我也遇到同样的问题 按照上面的解决方案 能发送出来就是有一些不如意的地方 我没有把打印函数写到循环里面 每复位一次打印一次才对 我的情况是打印后 有一些符号不断发出就像下面C:\Users\haitao\Desktop
回复 支持 反对

使用道具 举报

发表于 2014-7-27 16:55:53 | 显示全部楼层
图片怎么发不了啊
C:\Users\haitao\Desktop\QQ截图20140727164715
回复 支持 反对

使用道具 举报

发表于 2014-7-27 17:02:16 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-22 17:30 , Processed in 0.055139 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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