OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9467|回复: 3

串口usart.c的问题

[复制链接]

29

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-2-3
在线时间
0 小时
发表于 2012-2-11 14:51:24 | 显示全部楼层 |阅读模式
以下程序为串口usart.c里面的一部分程序:
 #if 1
#pragma import(__use_no_semihosting)            
//标准库需要的支持函数                
struct __FILE
{
 int handle;
 /* Whatever you require here. If the only file you are using is */
 /* standard output using printf() for debugging, no file handling */
 /* is required. */
};
/* FILE is typedef’ d in stdio.h. */
FILE __stdout;      
//定义_sys_exit()以避免使用半主机模式   
_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

问题1:
    该程序看不懂,望能详细指点。
问题2:
    请问uart_init(u32 pclk2,u32 bound)在哪有调用到了,并且pclk2、bound这两个形参的值在哪体现出来了?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-2-11 16:25:18 | 显示全部楼层
回复【楼主位】冰祖:
---------------------------------
1,看懂最后这里就可以了.前面的我也不懂.
//重定义fputc函数 
int fputc(int ch, FILE *f)
{      
 while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
 USART1->DR = (u8) ch;      
 return ch;
}

最后这里就是定义printf的输出执行单元了,比如现在是串口1输出,如果你要串口2,那么设置USART1为USART2即可.

2,main程序一开始就调用了.不懂就看<<不完全手册>>我对这个函数有说明.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

29

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-2-3
在线时间
0 小时
 楼主| 发表于 2012-2-12 13:52:09 | 显示全部楼层
main程序一开始只是包含了其头文件#include "usart.h" ,main主程序里面只是对下面的初始化设置:
        Stm32_Clock_Init(9); //系统时钟设置
delay_init(72);      //延时初始化 
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init();          //初始化与按键连接的硬件接口
好像并没有对串口uart_init(u32 pclk2,u32 bound)初始化函数进行设置。哪里有对其设置了,复制其程序过来让我看看,我找不到!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-2-12 18:29:48 | 显示全部楼层
回复【3楼】冰祖:
---------------------------------
那你用的不是我们的标准代码.或者是用到的还没有串口的实验吧?
你看看光盘的例子.基本上都有的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 21:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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