uint8_t TM1628_WritePro(void)
{undefined
//SPI1->CR1 |= SPI_Direction_1Line_Tx ;
SPI1->CR1 = 0xc3ff;
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SetSTB;
DelayXu(5);
ClrSTB;
DelayXu(2);
SPI_SendData8(SPI1,0x00);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SetSTB;
DelayXu(5);
ClrSTB;
DelayXu(2);
SPI_SendData8(SPI1,0x44);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SetSTB;
DelayXu(5);
ClrSTB;
DelayXu(2);
SPI_SendData8(SPI1,0xC0);
SPI_SendData8(SPI1,ShowValue[0]);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SetSTB;
DelayXu(5);
ClrSTB;
DelayXu(2);
SPI_SendData8(SPI1,0xC2);
SPI_SendData8(SPI1,ShowValue[1]);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SetSTB;
DelayXu(5);
ClrSTB;
DelayXu(2);
SPI_SendData8(SPI1,0xC4);
SPI_SendData8(SPI1,ShowValue[2]);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SetSTB;
DelayXu(5);
ClrSTB;
DelayXu(2);
SPI_SendData8(SPI1,0xC6);
SPI_SendData8(SPI1,ShowValue[3]);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SetSTB;
DelayXu(5);
ClrSTB;
DelayXu(2);
SPI_SendData8(SPI1,0x89);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
SetSTB;
return 0;
}
uint8_t TM1628_ReadPro(void)
{undefined
uint8_t KeyTemp[4] = {0};
SPI1->CR1 = 0xc3ff;
//SPI1->CR1 |= SPI_Direction_1Line_Tx;//
SetSTB;
DelayXu(5);
ClrSTB;
DelayXu(2);
SPI_SendData8(SPI1,0x42);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET);
DelayXu(5);
SPI1->CR1 &= ~SPI_EN;
SPI1->CR1 &= SPI_Direction_Rx;
SPI1->CR1 |= SPI_EN;
DelayXu(5);
while((SPI1->SR&SPI_I2S_FLAG_RXNE) == RESET);
KeyTemp[0] = SPI_ReceiveData8(SPI1);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
KeyTemp[1] = SPI_ReceiveData8(SPI1);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
KeyTemp[2] = SPI_ReceiveData8(SPI1);
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
KeyTemp[3] = SPI_ReceiveData8(SPI1);
//SPI1->CR1 |= SPI_Direction_1Line_Tx;//
SetSTB;
SPI1->CR1 = 0xc3ff;
//检验按键是否有效 若接线开路则返回错误
if(KeyTemp[1]&0xef) return 0 ;
if(KeyTemp[2]&0xed) return 0 ;
if(KeyTemp[3]&0xfd) return 0 ;
if(KeyTemp[1]&0x10) KeyValue |= BIT0 ;
else KeyValue &= ~BIT0 ;
if(KeyTemp[2]&0x10) KeyValue |= BIT1 ;
else KeyValue &= ~BIT1 ;
if(KeyTemp[2]&0x02) KeyValue |= BIT2 ;
else KeyValue &= ~BIT2 ;
if(KeyTemp[3]&0x02) KeyValue |= BIT3 ;
else KeyValue &= ~BIT3 ;
return 1;
}
上一篇:STM32F334之EXTI中断老是进不去
下一篇:初学stm32-外部中断(EXTI按键中断)
推荐阅读最新更新时间:2024-11-09 21:51
推荐帖子
- LPC1500体验+@3-GPIO中断【系列教程】
- 本帖最后由fxyc87于2014-7-509:48编辑 复制代码此例程功能:开启中断,指示灯指示,按下亮,再按下灭。所有内容均为原创#includelpc15xx.hintmain(){LPC_SYSCON-SYSAHBCLKCTRL0|=113|114|115|116;//开启iocon,p0,p1,p2时钟LPC_GPIO_PORT-B=1;//p1.1(蓝色)不点亮LPC_G
- fxyc87 NXP MCU
- 目前要做一个便携式超声检测仪器,基于wince的,请问用什么开发工具比较好?evc or vs2005?
- 目前要做一个便携式超声检测仪器,基于wince的,请问用什么开发工具比较好?evcorvs2005?谢谢,请问哪位大虾能帮帮我,感激不尽!目前要做一个便携式超声检测仪器,基于wince的,请问用什么开发工具比较好?evcorvs2005?VS2005,微软已经不supportEVC了。VS2005,微软已经不supportEVC了。‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’这个我知道,用evc的最高版本也不
- yydwhy WindowsCE
- 【晒心得】STM32F03开发板--系统时钟设置SysTick
- 【晒心得】STM32F03开发板--系统时钟设置首先我先分析下startup_stm32f0xx.s启动代码,其中/*Calltheclocksystemintitializationfunction.*/blSystemInit/*Calltheapplication\'sentrypoint.*/blmain发现开发板上电启动过程中,先调用了SystemInit()函数,再进入main()函数。SystemInit()函
- qinkaiabc stm32/stm8
- FPGA设计指南:器件、工具和流程.pdf
- 今天生日,发个资料FPGA设计指南:器件、工具和流程.pdf老是瞎起哄!
- 白丁 FPGA/CPLD
- 全民DIY ACDC实验电源
- 前段时间曾透露过,打算联手资深专业人员参与本次数控电源的DIY活动并且尝试一种全新的模式,系统及电路将围绕该模式展开,因需说明的内容较多,故单独发帖而未利用站方提供的现成报名模板。DIY活动的中心应该是有益、有趣、实用。通过DIY学到知识、丰富经验可谓“有益”,DIY自己喜欢的东西可以说“有趣”,实用嘛,一般而言,对从0开始的初学者而言往往比较困难,缺乏实用性的DIY作品也会降低前两者的质量,特别的,不同DIY活动的参与者如
- chunyang DIY/开源硬件专区
- 89s52加密问题
- 我最近遇到一个奇怪问题,公司新做了一块板子。烧写程序后,怎么弄都无法运行,甚至在将程序中所有部分都删掉,只留下打狗部分都无法运行。后来我在烧写设置中,无意将加密模式改为LockMode4后,并选上加密,程序运行就都正常了。我用的是双龙isp烧写器。不知道这个是怎么回事,是和硬件有关系还是和软件设置有关系?我们做的其他产品也用的同样的mcu,但从来没有遇到过这种情况。请各位大侠不吝赐教!89s52加密问题找个其他的板子测试一下用同样的烧写器,同样的方法烧写,看是否成功,排除是
- flyinsky1215 嵌入式系统
设计资源 培训 开发板 精华推荐
- 舵机/电调测试器
- STM32_USBHS(480Mb)摄像头
- PSoC5LP、U-MoBo ExM PsoC5LP 基于赛普拉斯 PSoC CY8C5868AXI-LP035 MCU
- LT1185IQ 低压差稳压器作为具有故障保护功能的逻辑控制 3A 低侧开关的典型应用电路
- LT6119-1/LT6119-2 的典型应用 - 具有 POR 的电流检测放大器、基准和比较器
- TWR-K21F120MA:TWR-K21F120MA:Kinetis®K21 120 MHzTower®系统模块
- Tda7265 的典型桥接应用,具有静音/待机功能的 25 +25W 立体声放大器
- MIC2042-1YTS 单通道、大电流、低电压、受保护配电开关的典型应用
- 使用 MaxLinear, Inc 的 SPX2951 的参考设计
- 【课程设计】电气火灾监控系统 1095660A