Hi 各位大佬: 我前天在论坛寻找CH32V203 用寄存器代码范例,目前没有收到回复.
在公司不能使用微信于是今天重新注册一个用户上传上午编写的CH32V203 用寄存器代码设置GPIO 共用代码, 各位应该能看出寄存器代码简介易懂并且很容易在编程手册找到资源进行修改编辑.
一直来我不喜欢LIB库编程,但没办法我并不精通单片机和C语言,只能摸索着和网上学习积累,到现在一直秉承着尽可能用寄存器代码,调不出来才找LIB库资源.也希望各位有和我一样资源的大家一起交流共享,谢谢!
#include "gpioset.h"
void GPIOSET_Init(void)
{
? ? //PWR_BackupAccessCmd( ENABLE );
? ? //PWR->CTLR |= (1 << 8);? ? // 允许修改RTC和后备寄存器
? ? //RCC_LSEConfig( RCC_LSE_OFF ); // 关闭外部低速时钟,PC14+PC15可以用作普通IO
? ? //BKP->TPCTLR |= (1 << 0);? ? ?// 关闭入侵检测功能,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电平? ??
? ??
}