Hi 各位大佬: 我前天在論壇尋找CH32V203 用寄存器代碼范例,目前沒有收到回復.
在公司不能使用微信于是今天重新注冊一個用戶上傳上午編寫的CH32V203 用寄存器代碼設置GPIO 共用代碼, 各位應該能看出寄存器代碼簡介易懂并且很容易在編程手冊找到資源進行修改編輯.
一直來我不喜歡LIB庫編程,但沒辦法我并不精通單片機和C語言,只能摸索著和網(wǎng)上學習積累,到現(xiàn)在一直秉承著盡可能用寄存器代碼,調(diào)不出來才找LIB庫資源.也希望各位有和我一樣資源的大家一起交流共享,謝謝!
#include "gpioset.h"
void GPIOSET_Init(void)
{
? ? //PWR_BackupAccessCmd( ENABLE );
? ? //PWR->CTLR |= (1 << 8);? ? // 允許修改RTC和后備寄存器
? ? //RCC_LSEConfig( RCC_LSE_OFF ); // 關(guān)閉外部低速時鐘,PC14+PC15可以用作普通IO
? ? //BKP->TPCTLR |= (1 << 0);? ? ?// 關(guān)閉入侵檢測功能,PC13可以用作普通IO
? ? RCC->APB2PCENR |= 0x00004A7D;? //APB2外設時鐘開啟. 設置查詢編程手冊44頁
? ? GPIOA->CFGLR? &= 0x00000000;? ?//所有通道清零
? ? GPIOA->CFGLR? |= 0x22222222;? ?//2為通用推挽輸出2M
? ? GPIOA->CFGHR? &= 0x00000000;? ?//4為浮空輸入
? ? GPIOA->CFGHR? |= 0x222222A2;? ?//8為輸入上拉模式??
? ? GPIOB->CFGLR? &= 0x00000000;? ?//A為復用推挽輸出2M
? ? GPIOB->CFGLR? |= 0x22222222;
? ? GPIOB->CFGHR? &= 0x00000000;? ?
? ? GPIOB->CFGHR? |= 0x22222222;
? ? //GPIOC->CFGLR? &= 0x00000000;??
? ? //GPIOC->CFGLR? |= 0x22222222;??
? ? GPIOC->CFGHR? &= 0x00000000;? ?
? ? GPIOC->CFGHR? |= 0x22222222;
? ? GPIOD->CFGLR? &= 0x00000000;??
? ? GPIOD->CFGLR? |= 0x22222222;? ?
? ? //GPIOD->CFGHR? &= 0x00000000;? ?
? ? //GPIOD->CFGHR? |= 0x222222A2;
? ??
? ? //GPIOA->OUTDR = 0x0000;? ?//GPIOA全部輸出低電平
? ? //GPIOA->OUTDR = 0xFFFF;? ?//GPIOA全部輸出高電平
? ? //GPIOA->BSHR = 0x0001;? ? //PA0輸出高電平
? ? //GPIOA->BCR = 0x0001;? ? ?//PA0輸出低電平
? ? //GPIOA->INDR;? ? ? ? ? ? ?//讀取GPIOA-IO電平
? ? //GPIOA->INDR & 0x0001;? ? //讀取PA1電平? ??
? ??
}