打印
[AVR单片机]

ICC AVR 中const问题

[复制链接]
5254|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
oldbaby|  楼主 | 2007-1-22 12:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AVR, ic, ST, dc, se
小弟使用ICC AVR编译器,最近做一个项目时遇到了const的问题,不是很明白,希望能得到大虾的指导~
函数功能是由键盘得到一个整型数,在函数里主要部分是这样的:
unsigned char str[6];//存储按键值的数组
//----
//得到按键值,依次赋给str 0~4 最后一位赋值'\0'
//----
value=atoi(str);//调用系统atoi函数,得到整型值。这个函数是没有问题的,能正确把字符串转换为整型
Uart0_SendStr(str);//同样的str传给串口发送就不行了,会发送一堆的数据,似乎是从flash中读的数据。
字符串发送函数是自己写的,具体如下:
//-------------------------------
//send char with uart 0
void Uart0_SendChar(unsigned char x)
{
     while (!(UCSR0A&(1<<UDRE0)));
     UDR0=x; 
}
//send string with uart 0
void Uart0_SendStr(const unsigned char *addr)
{
 while(*addr!='\0')
 {
     Uart0_SendChar(*addr++);
 }
}
Uart0_SendStr函数的参数为:(const unsigned char *addr)
系统中atoi的参数定义为:(CONST char *) 我现在最不明白的就是这两个的区别是什么?请大虾指点迷津,不胜感激~~

相关帖子

沙发
一级菜鸟| | 2007-1-22 12:04 | 只看该作者

定义为const,则数值不可变,MCU寻址代码区

使用特权

评论回复
板凳
oldbaby|  楼主 | 2007-1-22 12:50 | 只看该作者

re:

对,这个我明白,可value=atoi(str);就能转化啊,为什么atoi没有去寻址代码区?

使用特权

评论回复
评论
甘木 2021-9-26 09:09 回复TA
寻址代码区 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

1

粉丝