久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
74HC595級聯問題
[打印本頁]
作者:
zyftank
時間:
2023-11-7 22:42
標題:
74HC595級聯問題
今天碰到一個奇怪的問題,我用74HC595級聯,有兩塊板子,其中一塊物料是TM74HC595,另一塊物料是74HC595D。
在調試下面程序時,出現了問題,兩塊板子出現01這個數據竟然不是同一個位置,有知道原因的嗎?
#include "stm32f10x.h"
// 定義74HC595芯片引腳連接
#define SER_PIN GPIO_Pin_0
#define SRCLK_PIN GPIO_Pin_1
#define RCLK_PIN GPIO_Pin_2
#define GPIO_PORT GPIOA
// 字符編碼數據,使用負邏輯(低電平為亮)
const uint8_t font[][8] = {
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0xff 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff},
// 添加更多數據...
};
// 函數聲明
void delay(uint32_t time);
void sendByte(uint8_t data);
void sendCommand(uint8_t cmd);
void sendData(uint8_t data);
void displayMatrix(const uint8_t matrix[8]);
int main(void) {
// 初始化GPIO和時鐘配置
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = SER_PIN | SRCLK_PIN | RCLK_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIO_PORT, &GPIO_InitStructure);
while (1)
{
// 顯示字符A
displayMatrix(font[1]);
delay(1000); // 延時1秒
}
}
// 延時函數
void delay(uint32_t time) {
while (time--);
}
// 發送一個字節到74HC595芯片
void sendByte(uint8_t data) {
uint8_t i;
for (i = 0; i < 8; i++) {
GPIO_ResetBits(GPIO_PORT, SRCLK_PIN); // 時鐘信號置低
if ((data & 0x80) == 0x80)
GPIO_SetBits(GPIO_PORT, SER_PIN); // 輸出數據為1
else
GPIO_ResetBits(GPIO_PORT, SER_PIN); // 輸出數據為0
data <<= 1;
GPIO_SetBits(GPIO_PORT, SRCLK_PIN); // 時鐘信號置高,數據移位
}
}
// 發送命令到74HC595芯片(鎖存數據)
void sendCommand(uint8_t cmd) {
GPIO_ResetBits(GPIO_PORT, RCLK_PIN); // 時鐘信號置低
sendByte(cmd); // 發送數據
GPIO_SetBits(GPIO_PORT, RCLK_PIN); // 時鐘信號置高,鎖存數據
}
// 發送數據到74HC595芯片(顯示數據)
void sendData(uint8_t data) {
GPIO_SetBits(GPIO_PORT, RCLK_PIN); // 時鐘信號置高
sendByte(data); // 發送數據
GPIO_ResetBits(GPIO_PORT, RCLK_PIN); // 時鐘信號置低
}
// 顯示一個8x8點陣圖案
void displayMatrix(const uint8_t matrix[8]) {
uint8_t row;
for (row = 0; row < 8; row++) {
sendData(matrix[row]);
}
}
復制代碼
作者:
gzdavy
時間:
2024-4-20 20:16
不是同一家的芯片,很容易出現級聯問題。我用同一家的芯片,級聯到最后一級的時候都會出錯,因線路電容有影響。
作者:
xiaobendan001
時間:
2024-4-21 07:14
gzdavy 發表于 2024-4-20 20:16
不是同一家的芯片,很容易出現級聯問題。我用同一家的芯片,級聯到最后一級的時候都會出錯,因線路電容有影 ...
你說線路電容的問題,我用兩片,各種手段,結果還是不行,不穩定,只有一個牌子的可以用,而且穩定
作者:
zhuls
時間:
2024-4-21 13:42
void sendCommand(uint8_t cmd)
void sendData(uint8_t data)
這兩個函數的時序要認真斟酌一下。
595的本質是D觸發器,在CLK的上升沿把SDA的數據讀入。閑時CLK要保持低電平。
你在void sendByte(uint8_t data)中一開始是低電平,最后時刻是高電平,
所以有可能在sendCommand和sendData的一開始就鎖存了一個不可預知的電平進595了。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
好色网站
|
日韩视频免费在线观看
|
亚洲黄色片
|
国产精品一区在线播放
|
亚洲国产成人精品女人久久久
|
欧美性猛交一区二区三区精品
|
日本天堂网
|
中文字幕在线观看亚洲
|
成人福利在线观看
|
精品久久一区二区三区
|
黄色在线观看免费
|
成年人黄色网址
|
国产精品福利视频
|
中文字幕免费在线看线人动作大片
|
一区二区三区网站
|
a级片网站
|
国产伦精品
|
久久av资源
|
国产欧美日韩一区二区三区
|
www.少妇
|
黄色免费一级片
|
成人午夜网
|
性色av网站
|
在线免费观看av网站
|
天天看天天射
|
九九影视理伦片
|
91亚洲国产
|
日韩毛片在线
|
国产成人久久精品麻豆二区
|
日本成人小视频
|
亚洲国产日本
|
精品国产欧美一区二区三区成人
|
一级毛片免费看
|
亚洲天天操
|
2014天堂网
|
黄色国产网站
|
白白色免费视频
|
日韩在线毛片
|
亚洲成人精品一区
|
亚洲欧美日本在线
|
国产这里只有精品
|