专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
单片机串口通讯存储
2019-03-24 09:51
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
2414
4
1658
本帖最后由 qiushenghua 于 2015-8-24 23:38 编辑
目的是:将串口的数据存储下来,主程序再将数据调用。
问题是:当我把程序下载到430里面,连接好串口通讯,用串口发送数据给430后,能存下来,也能调用,可为什么当我复位后就不行了。
附程序:写数据到flash A
void write_SegA (uchar *value, int n)
{
uchar *Flash_ptr; // Flash pointer
uint i;
Flash_ptr = (uchar *)(0x1080 + n); // Initialize Flash pointer
FCTL1 = FWKEY + ERASE; // Set Erase bit
FCTL3 = FWKEY; // Clear Lock bit
*Flash_ptr = 0; // Dummy write to erase Flash segment
FCTL1 = FWKEY + WRT; // Set WRT bit for write operation
for (i=0; i<RX_len; i++)
{
*Flash_ptr++ = value; // Write value to flash
}
FCTL1 = FWKEY; // Clear WRT bit
FCTL3 = FWKEY + LOCK; // Set LOCK bit
}
串口接收中断
#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{
static char RX_len_temp;
Recptr[RX_len_temp]=RXBUF0;
RX_len_temp++;
if(Recptr[RX_len_temp-1]==0x0d)
{
RX_len=RX_len_temp;
RX_flag=1;
RX_len_temp=0;
write_SegA(Recptr,0);
}
}
string转int函数
unsigned long int string_to_int(unsigned char *ptr)
{
unsigned long int Data = 0;
int i = 0;
for(i = 0; ptr != ''; i++)
{
Data = Data*10 + ptr-48;
}
return Data;
}
将flash A中数据读出来
void ProcessCMD()
{int i;
data=(unsigned char *)0x1080;
for(i=0;i<RX_len;i++)
{
WorkTimeptr=*data++;
}
WorkTime=string_to_int(WorkTimeptr);
}
定时器A中断
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void)
{
n--;
if(n<=WorkTime)
P2OUT=0x00;
if(n==0)
{P2OUT=0xff;
n=120;}
}
主程序:
void main()
{P2DIR=0xFF;
P2OUT=0xFF;
WDTCTL=WDTPW+WDTHOLD;
int_clk();
int_usart();
CCTL0 = CCIE;
CCR0 = 4096;
TACTL = TASSEL_1+ID_3 + MC_1;
_EINT();
char i;
ProcessCMD();
for(;;)
{
if(RX_flag==1)
{
RX_flag=0;
for(i=0;i<RX_len;i++)
{
tmpptr=Recptr;
}
UART_TX_BUF[0]='o';
UART_TX_BUF[1]='k';
for(i=0;i<2;i++)
{
while (!(IFG1 & UTXIFG0));
TXBUF0=UART_TX_BUF;//;
}
}
}
}
复制代码
此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
pengbiao1210
2019-03-24 17:36
我复位后,不发数据,读出来的数据就不是之前的写进去的数据,结果就不是想要的
加载中...
查看其它4个回答
一周热门
更多
>
相关问题
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一周热门 更多>