stm32F103vet6的FSMC_TFT液晶显示单片机解密
- 单片机解密#include "stm32f10x.h"
- 单片机解密#include "uart.h"
- 单片机解密#include "cs1237.h"
- // 程序运行在STM32F103系列 主频72MHz
- // CS1237程序要注意的两个时序问题:
- // 1.CLK拉低以后 要等待300ms OUT引脚才会自动变低
- // 2.CLK的时钟频率最大是1.1Mhz 所以CLK=1和CLK=0之间 要加入至少0.5us的延时
- /**
- * @brief Main program.
- * @param None
- * @retval None
- */
- int main(void)
- {
- int32_t temp;
-
- USART1_Init(); // 初始化串口1 波特率9600
- CS1237_Init_JX();
- delay_ms(300);
- CS1237_Config();
- delay_ms(100);
- USART1_Send_byte(Read_Config());
-
- while (1)
- {
- delay_ms(1000);
- temp = Read_CS1237();//读取CS1237的数据
- printf("%d\r\n", temp);// 把读取到的数据发送到串口
- }
- }
- #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拉高
- }

芯片解密