
#define u8 unsigned char
#define u16 unsigned int
sbit MR=P1^6//寄存器清0,避免数据错位
sbit RCK=P1^5//并行输出时钟
sbit DS=P1^4//数据线
sbit CLK=P1^3//移位输入时钟
void writ_595(u8 dat) 者巧知
{
u8 i
MR=0//寄存器清0,避免宽脊数据错位
MR=1
for(i=0i<8i++)
{
CLK=0
if((dat&0x80) == 0x80)
DS = 1//串行数据输出
else DS = 0
CLK=1//移位输入时钟,上升沿输入
dat<<=1
}
RCK=0//并行输出时钟
RCK=1
} 该子函数可以直接首消调用,比如writ_595(0xfe);Q0-Q7脚则输出对应的二进制码
你把GPIOA->ODR=(GPIOA->ODR&~GPIO_Pin_7) 这句改成 GPIOA->ODR=(GPIOA->ODR&(~GPIO_Pin_7) )试试,也许是这个问题,建改链镇议核粗你还是别玩唤谈数码管了,STM32是那么高级货,直接玩彩屏吧欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)