这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » jianzhangx ARM DIY进程贴

共63条 4/7 |‹ 2 3 4 5 6 7 跳转至
助工
2012-05-05 23:14:58     打赏
31楼
测试液晶中...

助工
2012-05-06 22:48:38     打赏
32楼

LCD部分原理图上的PD4、PD5与PCB上的PD4、PD5正好相反,看到不少人是把PCB上的两脚调换,怎么没有人直接修改程序呢,如果时间足够,可以尝试下改程序。


助工
2012-05-07 22:20:07     打赏
33楼
串口输出第一行错误问题解决了,原来是程序中有两行顺序写反了,与大家分享:
int fputc(int ch, FILE *f)
{     
 USART1->DR = (u8) ch;     
 while((USART1->SR&0X40)==0);//循环发送,直到发送完毕  
 return ch;
}
应该写成:
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//循环发送,直到发送完毕
USART1->DR = (u8) ch;

return ch;
}

助工
2012-05-08 23:13:16     打赏
34楼
LCD测试:





助工
2012-05-09 23:07:17     打赏
35楼

1820部分代码:
*Function:向18B20写入一个字节
*parameter:
*Return:
*Modify:
*************************************************************/
void WriteByte (unsigned char  wr)  //单字节写入
{
 unsigned char  i;
 for (i=0;i<8;i++)
 {
  GPIO_ResetBits(GPIOA , D18B20);  //D18B20 = 0;
     Delay_us(2);
  //D18B20=wr&0x01;
  if(wr&0x01) GPIO_SetBits(GPIOA , D18B20);
  else  GPIO_ResetBits(GPIOA , D18B20);
  Delay_us(45);   //delay 45 uS //5
  
  GPIO_SetBits(GPIOA , D18B20);  //D18B20=1;
  wr >>= 1;
 }
}

/************************************************************
*Function:读18B20的一个字节
*parameter:
*Return:
*Modify:
*************************************************************/
unsigned char ReadByte (void)     //读取单字节
{
 unsigned char  i,u=0;
 for(i=0;i<8;i++)
 {  
  GPIO_ResetBits(GPIOA , D18B20);     //D18B20 = 0;
  Delay_us (2);
  u >>= 1;
 
  GPIO_SetBits(GPIOA , D18B20);   //D18B20 = 1;
  Delay_us (4);
  if(GPIO_ReadInputDataBit(GPIOA , D18B20) == 1)
  u |= 0x80;
  Delay_us (65);
 }
 return(u);
}

/************************************************************
*Function:读18B20
*parameter:
*Return:
*Modify:
*************************************************************/
void read_bytes (unsigned char  j)
{
  unsigned char  i;
  for(i=0;i<j;i++)
  {
    *p = ReadByte();
    p++;
  }
}

/************************************************************
*Function:CRC校验
*parameter:
*Return:
*Modify:
*************************************************************/
unsigned char Temp_CRC (unsigned char j)
{
    unsigned char  i,crc_data=0;
   for(i=0;i<j;i++)  //查表校验
     crc_data = CrcTable[crc_data^temp_buff[i]];
    return (crc_data);
}

/************************************************************
*Function:读取温度
*parameter:
*Return:
*Modify:
*************************************************************/
void GemTemp (void)
{
   read_bytes (9);
   if (Temp_CRC(9)==0) //校验正确
   {
     Temperature = temp_buff[1]*0x100 + temp_buff[0];
//     Temperature *= 0.625;
  Temperature /= 16;
  Delay_us(10);
    }
}

/************************************************************
*Function:内部配置
*parameter:
*Return:
*Modify:
*************************************************************/
void Config18b20 (void)  //重新配置报警限定值和分辨率
{
     Init18b20();
     WriteByte(0xcc);  //skip rom
     WriteByte(0x4e);  //write scratchpad
     WriteByte(0x19);  //上限
     WriteByte(0x1a);  //下限
     WriteByte(0x7f);     //set 12 bit (0.125)
     Init18b20();
     WriteByte(0xcc);  //skip rom
     WriteByte(0x48);  //保存设定值
     Init18b20();
     WriteByte(0xcc);  //skip rom
     WriteByte(0xb8);  //回调设定值
}

/************************************************************
*Function:读18B20ID
*parameter:
*Return:
*Modify:
*************************************************************/
void ReadID (void)//读取器件 id
{
 Init18b20();
 WriteByte(0x33);  //read rom
 read_bytes(8);
}

/************************************************************
*Function:18B20ID全处理
*parameter:
*Return:
*Modify:
*************************************************************/
void TemperatuerResult(void)
{
   p = id_buff;
   ReadID();
   Config18b20();
 Init18b20 ();
 WriteByte(0xcc);   //skip rom
 WriteByte(0x44);   //Temperature convert

 Init18b20 ();
 WriteByte(0xcc);   //skip rom
 WriteByte(0xbe);   //read Temperature
 p = temp_buff;
 GemTemp();
}


void GetTemp()
{      
     if(Count == 3) //每隔 3s 读取温度
 {  Count=0;
    TemperatuerResult();
 }

}


助工
2012-05-10 21:51:41     打赏
36楼

触摸屏:


助工
2012-05-11 21:28:18     打赏
37楼
AD模数转换,使用电位器分压做模拟输入信号,调节变位器的阻值可改输入电压信号值:

助工
2012-05-12 22:48:23     打赏
38楼

忘记附上电路了,加上:


助工
2012-05-13 22:31:49     打赏
39楼

正在调试2.4G无线模块中。
找到一套ARM视频教程,再系统地学习一下。


助工
2012-05-14 21:52:00     打赏
40楼

只买了一个2.4G模块,只能做发送实验,收都做不了,还得买一个回来。只能先做其他的了。


共63条 4/7 |‹ 2 3 4 5 6 7 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]