stm8s 开发SPI的两种方法
2014-05-03 14:18
288 查看
1: void GPIO_Configuration(void) Add GPIOA configuration |
void GPIO_Configuration(void) { GPIO_DeInit(GPIOD); /* Configure PD0 (LED1) as output push-pull low (led switched on) */ GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST); /* GPIOD reset */ GPIO_DeInit(GPIOC); /* Configure PD0 (LED1) as output push-pull low (led switched on) */ GPIO_Init(GPIOC, GPIO_PIN_5 , GPIO_MODE_OUT_PP_HIGH_SLOW); GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_OUT_PP_HIGH_SLOW); GPIO_Init(GPIOC, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_FAST);} |
2: void HC595SendData(u8 SendData) send data to HC595 Using GPIOA+SPI GPIOC.6---- SER GPIOC.5---- SCLK GPIOC.4---- RCLK |
void HC595SendData(u8 SendData) { #if Comm_MODE while (SPI_GetFlagStatus( SPI_FLAG_TXE) == RESET); SPI_SendData(SendData); while (SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET); SPI_ReceiveData(); /*读取因上面发送数据产生的无效数据*/ #else // 寄存器(可赋值):不优化290KHz,最高速度优化:319KHz u8 i; for(i=0; i<8; i++) { if(SendData<<i & 0x80) GPIOC->ODR |= GPIO_PIN_6; //SER else GPIOC->ODR &=~GPIO_PIN_6; GPIOC->ODR |= GPIO_PIN_5; //SCLK GPIOC->ODR &=~GPIO_PIN_5; } #endif } |
3: void sdata(void) Send 8 byte data to HC595 |
void sdata(void) { HC595SendData(segbit[m]); HC595SendData(fseg[disbuf[m]]); GPIOC->ODR |= GPIO_PIN_4; //RCLK GPIOC->ODR &=~GPIO_PIN_4; m++; if(m==8) { m=0; } } ** 1.declare m as globe variable unsigned char m; #define Comm_MODE 1/0 2.declare segbit , fseg and disbuf variable U8 fseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char segbit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; unsigned char disbuf[8]={0,0,0,0,0,0,0,0}; 3.should include the head file #include "stm8s_spi.h" |
相关文章推荐
- 开发JAVA编程中字符串分割的两种方法
- iOS 开发中把键盘叫回去的两种方法
- Android开发:获取屏幕宽和高的两种方法(px、dip、分辨率之间的关系及px与dip互相转化)
- ios开发之倒计时实现的两种方法
- 【游戏开发备注之三】GameCenter登陆出现“无法识别此游戏”问题的两种解决方法 推荐
- C#多线程开发3:给线程传递数据的两种方法
- C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法。
- 跨平台开发的两种方法及其对比
- jQuery插件开发的两种方法及$.fn.extend的详解
- 【Android开发技巧】Fragment中获取Context对象的两种方法
- Android开发学习笔记(四):两种方法实现图片播放器
- 【Android】Web开发之显示网络图片的两种方法
- 【VS开发】VC下加载JPG/GIF/PNG图片的两种方法
- ios开发创建单例的两种方法
- WinCE6.0流驱动开发的两种方法及驱动加载失败问题解决
- 开发JAVA编程中字符串分割的两种方法
- IOS开发之----两种保存用户名和密码实现记住密码库的方法
- Unity3D开发学习之路--两种在Unity3D中创建倒计时器的方法
- AJAX 开发的两种不同的方法[转]
- ios开发之倒计时实现的两种方法