首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

多个串口初始化的函数如何写

2012-02-10 
多个串口初始化的函数怎么写?例如已经定义好了#defineU0IIR(*((volatileunsignedchar*)0xE000C008))和#def

多个串口初始化的函数怎么写?
例如   已经定义好了
#define   U0IIR                       (*((volatile   unsigned   char   *)   0xE000C008))

#define   U1IIR                       (*((volatile   unsigned   char   *)   0xE0010008))
等等
如何写一个函数 让多个串口初始化都调用一个函数呢?
init()
{
U0IIR   =   0x07;  
U1IIR   =   0x07;  
}这样可行但是  
我想实现写成
init(   传递地址   )
{
传递地址   =   0x07;  
}       相当于右面是变量有这种方法吗?       或者有其他方法吗     在多串口时   必须重复的都写出来吗?  谢谢解答 学习!!

[解决办法]
init( p )
{
*p = 0x07;
}

调用
init(&U0IIR);
init(&U1IIR);
[解决办法]
上面发错了,不好意思...
U0IIR
U1IIR
只是reg地址地址而已,不关函数的事情

init的时候带串口号进来,通过指针指向不同的函数指针或寄存器地址指针即可。。。

[解决办法]
(*((volatile unsigned char *) 0xE000C008)) 
理解这个是C语言基础的问题了

0xE000C008//它是一个常量,可以看成是一个无符号数,在C语言里指针的本质也是一个无符号数
(volatile unsigned char *)//将上面那个常量强制定义成一个unsigned char型的指针
*//再对那个指针进行访问*+指针(地址)为一个指针运算,结果是它指向的类型的空间

热点排行