• 大小: 2.24M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2024-06-14
  • 语言: C/C++
  • 标签: STM32  STM3  123  cs  23  

资源简介

stm32f103读cs1237实现秤重测量,子非鱼作品

资源截图

代码片段和文件信息

#include “cs1237.h“
#include “uart.h“


//OUT引脚输入输出 方向设置  PA3
#define OUT_IN()  {GPIOA->CRL&=0XFFFF0FFF;GPIOA->CRL|=8<<12;}
#define OUT_OUT() {GPIOA->CRL&=0XFFFF0FFF;GPIOA->CRL|=3<<12;}

// PA2-----CLK
// PA3-----OUT

void Delay1us(void)
{
__IO uint32_t t=5;

while(t--);
}

void Delay1ms(void)
{
__IO uint32_t t=8000;

while(t--);
}

void delay_ms(__IO uint16_t ms)
{
do{
Delay1ms();
}while(ms--);
}

// 初始化PA2 PA3
// PA2-----CLK
// PA3-----OUT
void CS1237_Init_JX(void)
{
GPIO_InitTypeDef  GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ENABLE);

// PA2 ----- CLK  设置为输出
// PA3 ----- OUT  设置为输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA &GPIO_InitStructure);

GPIO_SetBits(GPIOA GPIO_Pin_2); // CLK拉高
GPIO_SetBits(GPIOA GPIO_Pin_3); // OUT拉高
}

//配置CS1237芯片
void CS1237_Config(void)
{
unsigned char i;
unsigned char dat;
unsigned int count_i=0;//溢出计时器

dat = 0X0C;   //芯片地配置 内部REF 输出40HZ PGA=128 通道A 0X1C   
OUT_OUT();
GPIO_SetBits(GPIOA GPIO_Pin_3); //OUT引脚拉高
OUT_IN();
GPIO_ResetBits(GPIOA GPIO_Pin_2);// 时钟拉低
while(GPIO_ReadInputDataBit(GPIOA GPIO_Pin_3)==1) //等待CS237准备好
{
delay_ms(1);
count_i++;
if(count_i > 300)
{
OUT_OUT();
GPIO_SetBits(GPIOA GPIO_Pin_3); // OUT引脚拉高
GPIO_SetBits(GPIOA GPIO_Pin_2); // CLK引脚拉高
return;//超时,则直接退出程序
}
}
for(i=0;i<29;i++)// 1 - 29
{
GPIO_SetBits(GPIOA GPIO_Pin_2); // CLK=1;
Delay1us();
GPIO_ResetBits(GPIOA GPIO_Pin_2); // CLK=0;
Delay1us();
}
OUT_OUT();
GPIO_SetBits(GPIOA GPIO_Pin_2);Delay1us();GPIO_SetBits(GPIOA GPIO_Pin_3);GPIO_ResetBits(GPIOA GPIO_Pin_2);Delay1us();//30
GPIO_SetBits(GPIOA GPIO_Pin_2);Delay1us();GPIO_SetBits(GPIOA GPIO_Pin_3);GPIO_ResetBits(GPIOA GPIO_Pin_2);Delay1us();//31
GPIO_SetBits(GPIOA GPIO_Pin_2);Delay1us();GPIO_ResetBits(GPIOA GPIO_Pin_3);GPIO_ResetBits(GPIOA GPIO_Pin_2);Delay1us();//32
GPIO_SetBits(GPIOA GPIO_Pin_2);Delay1us();GPIO_ResetBits(GPIOA GPIO_Pin_3);GPIO_ResetBits(GPIOA GPIO_Pin_2);Delay1us();//33
GPIO_SetBits(GPIOA GPIO_Pin_2);Delay1us();GPIO_SetBits(GPIOA GPIO_Pin_3);GPIO_ResetBits(GPIOA GPIO_Pin_2);Delay1us();//34
GPIO_SetBits(GPIOA GPIO_Pin_2);Delay1us();GPIO_ResetBits(GPIOA GPIO_Pin_3);GPIO_ResetBits(GPIOA GPIO_Pin_2);Delay1us();//35
GPIO_SetBits(GPIOA GPIO_Pin_2);Delay1us();GPIO_SetBits(GPIOA GPIO_Pin_3);GPIO_ResetBits(GPIOA GPIO_Pin_2);Delay1us();//36
//37     写入了0x65
GPIO_SetBits(GPIOA GPIO_Pin_2); // CLK=1;
Delay1us();
GPIO_ResetBits(GPIOA GPIO_Pin_2); // CLK=0;
Delay1us();

for(i=0;i<8;i++)// 38 - 45个脉冲了,写8位数据
{
GPIO_SetBits(GPIOA GPIO_Pin_2); // CLK=1;
Delay1us();
if(dat&0x80)
GPIO_SetBits(GPIOA GPIO_Pin_3);// OUT = 1
else
GPIO_ResetBits(GPIOA GPIO_Pin_3);
dat <<= 1;
GPIO_ResetBi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-08-07 21:39  STM32-CS1237\
     目录           0  2019-08-12 20:25  STM32-CS1237\Code_User\
     文件        7235  2019-08-12 17:38  STM32-CS1237\Code_User\cs1237.c
     文件         275  2019-08-13 21:13  STM32-CS1237\Code_User\cs1237.h
     文件        1685  2019-08-09 15:37  STM32-CS1237\Code_User\key.c
     文件         460  2019-08-09 15:35  STM32-CS1237\Code_User\key.h
     文件        4640  2019-08-12 20:25  STM32-CS1237\Code_User\main.c
     文件        7992  2018-06-22 15:48  STM32-CS1237\Code_User\uart.c
     文件         393  2018-06-22 15:48  STM32-CS1237\Code_User\uart.h
     目录           0  2019-08-07 21:39  STM32-CS1237\Core\
     文件       17273  2010-06-07 10:25  STM32-CS1237\Core\core_cm3.c
     文件       85714  2011-02-09 14:59  STM32-CS1237\Core\core_cm3.h
     文件       15503  2011-03-10 10:52  STM32-CS1237\Core\startup_stm32f10x_hd.s
     目录           0  2019-08-07 21:39  STM32-CS1237\FWLib\
     目录           0  2019-08-07 21:39  STM32-CS1237\FWLib\inc\
     文件        8982  2011-03-10 10:47  STM32-CS1237\FWLib\inc\misc.h
     文件       21690  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_adc.h
     文件        7555  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_bkp.h
     文件       27559  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_can.h
     文件        6573  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_cec.h
     文件        2162  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_crc.h
     文件       15233  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_dac.h
     文件        3818  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_dbgmcu.h
     文件       20754  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_dma.h
     文件        6824  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_exti.h
     文件       25445  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_flash.h
     文件       27016  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_fsmc.h
     文件       20175  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_gpio.h
     文件       30029  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_i2c.h
     文件        3828  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_iwdg.h
     文件        4383  2011-03-10 10:47  STM32-CS1237\FWLib\inc\stm32f10x_pwr.h
............此处省略97个文件信息

评论

共有 条评论