1、新建项目,选择芯片型号,选中如下库文件:
代码如下:
#include "stm32f10x.h"
#define MOSIO GPIO_Pin_12 //=PA12;
#define R_CLK GPIO_Pin_13 //=PA13;
#define S_CLK GPIO_Pin_14 //=PA14;
void NOP(void)
{
uint16_t i;
for (i = 0; i < 20; i++);
}
void Delay(uint32_t nCount)
{
for (; nCount != 0; nCount--);
}
void HC595SendData(uint8_t SendVal)
{
uint8_t i;
for (i = 0; i < 8; i++)
{
if (((SendVal << i) & 0x80) != 0 ) GPIO_SetBits(GPIOA, MOSIO);
else GPIO_ResetBits(GPIOA, MOSIO);
GPIO_ResetBits(GPIOA, S_CLK);
NOP();
GPIO_SetBits(GPIOA, S_CLK);
}
GPIO_ResetBits(GPIOA, R_CLK);
NOP();
GPIO_SetBits(GPIOA, R_CLK);
}
int main()
{
uint8_t i = 0x00;
GPIO_InitTypeDef GPIO_InitS;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
GPIO_InitS.GPIO_Pin = GPIO_Pin_All;
GPIO_InitS.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitS.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitS);
GPIO_Write(GPIOA, 0xffff);
while (1)
{
i = (i + 1) % 8;
HC595SendData((0x01 << i));
Delay(0x3FFFFF);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)