3461bs-1 stm32
时间: 2023-11-13 20:49:25 浏览: 53
引用提到了STM32实时时钟(RTC)的功能和特点,它是一个独立的BCD定时器/计数器,提供日历时钟、报警中断和定期唤醒标志等功能。它使用二进制十进制(BCD)格式来表示秒、分、小时、星期、日期、月份和年份,并提供亚秒值。此外,它还可以自动调整每个月的天数、提供夏令时补偿,并具备数字校准功能。RTC寄存器在上电复位后会被保护,只有在电源电压在工作范围内时才会继续工作。
引用是一段代码,用于在四位数码管上显示数字。它包含了延时函数和显示函数,可以根据传入的数字和形参来显示相应的数码管显示效果。
引用提到了市面上常见的3641BS数码管都是集成了74HC595移位寄存器芯片的PCB板。但是作者手头只有最原始的12引脚版本,因此在博客中讲解了使用12引脚版本的3641BS数码管驱动的方法。
回答完问题后的
相关问题
用stm32f103c8t6写一个3461BS1-7.3显示单独控制四个数字的代码
下面是使用STM32F103C8T6控制3461BS1-7.3显示单独控制四个数字的简单代码示例:
```c
#include "stm32f10x.h"
// 定义数码管控制端口
#define DIG_PORT GPIOB
#define DIG_PIN_1 GPIO_Pin_0
#define DIG_PIN_2 GPIO_Pin_1
#define DIG_PIN_3 GPIO_Pin_10
#define DIG_PIN_4 GPIO_Pin_11
// 定义数码管显示端口
#define SEG_PORT GPIOC
#define SEG_PIN_A GPIO_Pin_0
#define SEG_PIN_B GPIO_Pin_1
#define SEG_PIN_C GPIO_Pin_2
#define SEG_PIN_D GPIO_Pin_3
#define SEG_PIN_E GPIO_Pin_4
#define SEG_PIN_F GPIO_Pin_5
#define SEG_PIN_G GPIO_Pin_6
#define SEG_PIN_DP GPIO_Pin_7
// 数码管显示字形表
const uint8_t DIG_TABLE[] = {
0x3f, // 0
0x06, // 1
0x5b, // 2
0x4f, // 3
0x66, // 4
0x6d, // 5
0x7d, // 6
0x07, // 7
0x7f, // 8
0x6f, // 9
};
// 数码管显示缓存
uint8_t DIG_CACHE[] = {
0xff, // 数码管1
0xff, // 数码管2
0xff, // 数码管3
0xff, // 数码管4
};
// 数码管显示控制
uint8_t DIG_CTRL[] = {
0, // 数码管1
0, // 数码管2
0, // 数码管3
0, // 数码管4
};
// 数码管位选函数
void dig_select(uint8_t idx) {
switch (idx) {
case 0:
GPIO_WriteBit(DIG_PORT, DIG_PIN_1, Bit_RESET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_2, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_3, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_4, Bit_SET);
break;
case 1:
GPIO_WriteBit(DIG_PORT, DIG_PIN_1, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_2, Bit_RESET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_3, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_4, Bit_SET);
break;
case 2:
GPIO_WriteBit(DIG_PORT, DIG_PIN_1, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_2, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_3, Bit_RESET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_4, Bit_SET);
break;
case 3:
GPIO_WriteBit(DIG_PORT, DIG_PIN_1, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_2, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_3, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_4, Bit_RESET);
break;
default:
GPIO_WriteBit(DIG_PORT, DIG_PIN_1, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_2, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_3, Bit_SET);
GPIO_WriteBit(DIG_PORT, DIG_PIN_4, Bit_SET);
break;
}
}
// 数码管显示函数
void dig_display(uint8_t idx, uint8_t val) {
DIG_CTRL[idx] = val;
DIG_CACHE[idx] = DIG_TABLE[val];
}
// 数码管显示初始化函数
void dig_init() {
// 数码管控制端口初始化
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = DIG_PIN_1 | DIG_PIN_2 | DIG_PIN_3 | DIG_PIN_4;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(DIG_PORT, &GPIO_InitStruct);
// 数码管显示端口初始化
GPIO_InitStruct.GPIO_Pin = SEG_PIN_A | SEG_PIN_B | SEG_PIN_C | SEG_PIN_D | SEG_PIN_E | SEG_PIN_F | SEG_PIN_G | SEG_PIN_DP;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(SEG_PORT, &GPIO_InitStruct);
// 数码管显示缓存清零
for (int i = 0; i < 4; i++) {
DIG_CACHE[i] = 0xff;
}
}
int main(void) {
// 数码管显示初始化
dig_init();
// 数码管显示测试
uint8_t cnt = 0;
while (1) {
for (int i = 0; i < 4; i++) {
dig_select(i);
GPIO_Write(SEG_PORT, DIG_CACHE[i]);
DIG_CTRL[i] = (DIG_CTRL[i] + 1) % 10;
dig_display(i, DIG_CTRL[i]);
for (int j = 0; j < 1000; j++);
}
}
}
```
在这个代码示例中,我们使用了STM32F103C8T6的GPIO模块来控制四个3461BS1-7.3数码管的显示。我们首先定义了数码管控制端口和数码管显示端口,然后定义了数码管显示字形表和显示缓存。在初始化函数中,我们初始化了数码管控制端口和数码管显示端口,并将显示缓存清零。在主函数中,我们循环遍历四个数码管,依次将其选中并显示对应的数字。在每次循环中,我们还将对应数码管的数字加1,以便在下次循环中显示下一个数字。
需要注意的是,这个代码示例只是一个简单的数码管显示程序,如果需要实现更复杂的功能,比如显示实时时间、温度等,需要根据具体的需求进行修改。
stm32与1088bs
STM32与BS83B12A-3之间通过IIC通信。其中STM32F103C8T6的程序和BS83B12A-3的程序都是基于C语言编写的,因此比较容易理解。
此外,STM32还被应用于一些智能家居系统中,比如基于Zigbee和STM32的智能家居系统。这个系统使用Qt编写了上位机,可以通过下载并按照文档配置好环境后运行。这些源码都是经过专业老师审定过的,系统完整且可靠。
对于BS83B12A-3与STM32的具体应用,我无法找到相关的具体细节。不过,可以通过IIC通信将BS83B12A-3连接到STM32,实现各种功能。例如,通过DS18B20传感器采集温度值,并通过液晶1602显示出来。此外,还可以使用按键设置温度的上下限。当实际测量温度小于下限时,加热继电器启动;当实际测量温度大于上限时,降温继电器启动;否则,保持温度稳定。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [STM32与触摸芯片BS83B12A-3通过IIC通信读取触摸按键](https://download.csdn.net/download/qq_27009991/10794292)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [毕设项目:基于zigbee和stm32的智能家居系统,上位机使用Qt编写.zip](https://download.csdn.net/download/qq_35831906/88258947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [基于STM32 DS18B20温度控制系统(proteus仿真+源程序).rar](https://download.csdn.net/download/bbxyliyang/85772841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]