资源简介
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个文件信息
相关资源
- 基于STM32单片机的心率体温测量仪
- 基于STM32F103ZET6控制舵机旋转(ts90a/
- stm32f103zet6控制蓝牙小车
- STM32F407驱动OLED显示DS18B20数字温度
- vscode作为编辑器开发stm32f103c8
- STM32 多路PWM输出
- STM32烧写算法flash包
- STM32 LIN通信数据发送实现 测试通过
- FFT电流检测 stm32f4
- DS1302万年历设计 stm32
- 超声波定高(基于STM32)
- STM32(神舟III号 串口1发送实验程序)
- STM32 模拟信号采集
- STM32-ads1256
- STM32跑马灯实验58159
- STM32429的串口收发程序
- STM32连接EC20使用内置MQTT协议接入阿里
- TM4C123中文手册
- ADS1256-STM32参考程序
- stm32 AD7506
- STM32F10实现照相功能照相机
- 基于STM32的嵌入式flash读写控制
- stm32f103c8t6开发板原理图+pcb
- STM32内部FLASH模拟eerom
- stm32的半导体除湿机程序
- stm32实现高精度频率测定
- stm32库函数代码自动生成器V1.2
- stm32 DMA例程
- stm32蓝牙小车
- 显示屏操作(stm32f103c8t6(SAN))
评论
共有 条评论