![]() |
發布時間: 2024-8-29 16:17
正文摘要:在NTC那里我接了4.7K的電阻,也就是下圖CN3的位置,理應ADC得返回2048左右的ADC值,但是返回出來只有200多,我的單片機芯片SC92F7411,用過他們賽元微里面的例程代碼,返回出來的值也是一樣,請問我應該怎么改,請大 ... |
試試這段程序,如果還是一樣,可能是硬件問題 #include "sc92f7411.h" // 假設ADC模塊的基地址為0x50000000 #define ADC_BASE 0x50000000 // ADC控制寄存器定義 #define ADC_CR1 *(volatile unsigned int *)(ADC_BASE) #define ADC_CR2 *(volatile unsigned int *)(ADC_BASE + 4) #define ADC_DR *(volatile unsigned short *)(ADC_BASE + 8) // ADC時鐘使能(請根據實際情況修改) void ADC_ClockInit() { // ... } // ADC初始化 void ADC_Init() { ADC_ClockInit(); // 配置ADC控制寄存器 ADC_CR1 = 0x00; // 清除控制寄存器 ADC_CR2 = 0x00; // 清除控制寄存器 // 設置采樣時間、通道等(根據數據手冊配置) ADC_CR1 |= (1 << 12); // 設置采樣時間 ADC_CR2 |= (3 << 0); // 選擇通道3 // 使能ADC ADC_CR2 |= (1 << 0); } // 啟動ADC轉換 void ADC_StartConvert() { // 啟動ADC轉換 ADC_CR2 |= (1 << 3); } // 讀取ADC轉換結果 uint16_t ADC_ReadValue() { // 等待轉換完成(可通過中斷方式) // ... return ADC_DR; } |