单片机解密stm32f407单片机通过并口驱动
单片机解密单片机源程序如下:
- #include "adc7606.h"
- 单片机解密//AD_OS0 PG4
- 单片机解密#define OS0_1() GPIOG->BSRRL = GPIO_Pin_4
- 单片机解密#define OS0_0() GPIOG->BSRRH = GPIO_Pin_4
- //AD_OS1 PG3
- #define OS1_1() GPIOG->BSRRL = GPIO_Pin_3
- #define OS1_0() GPIOG->BSRRH = GPIO_Pin_3
- //AD_OS2 PG2
- #define OS2_1() GPIOG->BSRRL = GPIO_Pin_2
- #define OS2_0() GPIOG->BSRRH = GPIO_Pin_2
- //PD11 CNVTA
- //PB15 CNVTB TIM_CH3N/TIM8_CH3N/TIM12_CH2
- #define CONVSTA_1() GPIOD->BSRRL = GPIO_Pin_11
- #define CONVSTA_0() GPIOD->BSRRH = GPIO_Pin_11
- #define CONVSTB_1() GPIOB->BSRRL = GPIO_Pin_15
- #define CONVSTB_0() GPIOB->BSRRH = GPIO_Pin_15
- //PD12 RANGE
- #define RANGE_1() GPIOD->BSRRL = GPIO_Pin_12
- #define RANGE_0() GPIOD->BSRRH = GPIO_Pin_12
- //AD_RESET PB14
- #define RESET_1() GPIOB->BSRRL = GPIO_Pin_14
- #define RESET_0() GPIOB->BSRRH = GPIO_Pin_14
- //AD7606 FSMC总线地址,只能读,无需写
- #define AD7606_RESULT() *(__IO uint16_t *)0x6C400000
- AD7606_VAR_T g_tAD7606; //定义1个全局变量,保存一些参数
- static void AD7606_CtrlLinesConfig(void);
- static void AD7606_FSMCConfig(void);
- /*------------------------------------------------------------------------------------------------------------------------------
- *****-----功能介绍:AD7606初始化
- *****-----函数 名:AD7606_Init()
- *****-----入口参数:无
- *****-----返回 值:无
- *****-----备 注:
- ------------------------------------------------------------------------------------------------------------------------------*/
- void AD7606_Init(void)
- {
- AD7606_CtrlLinesConfig();
- AD7606_FSMCConfig();
- AD7606_SetOS(AD_OS_NO); //无过采样
- AD7606_SetInputRange(0); //0表示输入量程为正负5V, 1表示正负10V
- AD7606_Reset();
- CONVSTB_1(); //启动转换的GPIO平时设置为高
- }

芯片解密