STM32软件模拟串口协议控制TM1652

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32软件模拟串口协议控制TM1652相关的知识,希望对你有一定的参考价值。


TM1652.c

#include "tm1652.h"
#include "delay.h"


void tm1652_init()

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_10);



void tm1652_send_data(u8 sdat)

unsigned char i=0, sfalg=0;

//Æðʼλ
TX=1; TX=0; delay_us(52); //±£³Ö52us

//·¢ËÍ8λÊý¾Ý
for(i=0; i<8; i++)

if(sdat & 0x01)

TX=1;
sfalg++;
else

TX=0;

delay_us(52);
sdat >>=1;


//УÑéλ,°´ÕÕ·¢ËÍÊý¾ÝÖÐ1µÄ¸öÊýÀ´ÅжÏ
if(sfalg%2==0)

TX=1;

else

TX=0;

delay_us(52);

//ֹͣλ
TX=1; delay_us(52);

main.c

tm1652_send_data(0x08);
tm1652_send_data(0xff);
tm1652_send_data(0xff);
tm1652_send_data(0xff);
tm1652_send_data(0x00);
tm1652_send_data(0x00);
tm1652_send_data(0x00);
tm1652_send_data(0x18);
tm1652_send_data(0x4f);
delay_ms(1000);


以上是关于STM32软件模拟串口协议控制TM1652的主要内容,如果未能解决你的问题,请参考以下文章

STM32之模拟串口设计

stm32为啥都用软件模拟协议

stm32 普通IO口模拟串口通信

STM32怎么编写一个串口通信协议

STM32F103RBT6串口3配置不成功啥问题

嵌入式09STM32串口通信协议