|
4楼
楼主 |
发表于 2015-11-26 12:33:12
|
只看该作者
- void init_spi0_2_gpio()
- {
- gpio_enable_gpio_pin(DS_S_CS);
- gpio_enable_gpio_pin(DS_S_MOSI);
- gpio_enable_gpio_pin(DS_S_MISO);
- gpio_enable_gpio_pin(DS_S_SCLK);
- gpio_set_gpio_pin(DS_S_CS);
- }
- //////////////////////////////////////////////////
- //空闲时钟低,下降沿写入数据,
- void ds_write_cmd(unsigned char addr,unsigned char data)
- {
- unsigned char i;
- gpio_clr_gpio_pin(DS_S_CS);
- gpio_clr_gpio_pin(DS_S_SCLK);
- delay_us(3);
- for (i=0;i<8;i++)
- {
- gpio_set_gpio_pin(DS_S_SCLK);
- delay_us(1);
- if (GET_BIT(addr,(7-i)))
- {
- gpio_set_gpio_pin(DS_S_MOSI);
- }
- else
- {
- gpio_clr_gpio_pin(DS_S_MOSI);
- }
- delay_us(1);
- gpio_clr_gpio_pin(DS_S_SCLK);
- delay_us(3);
- }
- delay_us(1);
- for (i=0;i<8;i++)
- {
- gpio_set_gpio_pin(DS_S_SCLK);
- delay_us(1);
- if (GET_BIT(data,(7-i)))
- {
- gpio_set_gpio_pin(DS_S_MOSI);
- }
- else
- {
- gpio_clr_gpio_pin(DS_S_MOSI);
- }
- delay_us(1);
- gpio_clr_gpio_pin(DS_S_SCLK);
- delay_us(3);
- }
- delay_us(1);
- gpio_set_gpio_pin(DS_S_CS);
- }
- /////////////////////////////////
- unsigned char ds_read_data(unsigned char addr)
- {
- unsigned char i,cm_data=0;
- gpio_clr_gpio_pin(DS_S_CS);
- gpio_clr_gpio_pin(DS_S_SCLK);
- delay_us(3);
- for (i=0;i<8;i++)
- {
- gpio_set_gpio_pin(DS_S_SCLK);
- delay_us(1);
- if (GET_BIT(addr,(7-i)))
- {
- gpio_set_gpio_pin(DS_S_MOSI);
- }
- else
- {
- gpio_clr_gpio_pin(DS_S_MOSI);
- }
- delay_us(1);
- gpio_clr_gpio_pin(DS_S_SCLK);
- delay_us(3);
- }
- delay_us(1);
- for (i=0;i<8;i++)
- {
- gpio_set_gpio_pin(DS_S_SCLK);
- delay_us(1);
- if (1==gpio_get_pin_value(DS_S_MISO))
- {
- SET_BIT(cm_data,(7-i));
- }
- else
- {
- delay_us(1);
- }
- delay_us(1);
- gpio_clr_gpio_pin(DS_S_SCLK);
- delay_us(3);
- }
- gpio_set_gpio_pin(DS_S_CS);
- return cm_data;
- }
- #define SET_BIT(val, bitn) (val |=(1<<(bitn)))
- #define CLR_BIT(val, bitn) (val&=~(1<<(bitn)))
- #define GET_BIT(val, bitn) (val &(1<<(bitn)) )
复制代码
最后用GPIO做的 需要的可以参考一下 |
|