打印
[单片机芯片]

【沁恒CH579评测】UART1

[复制链接]
907|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、硬件接口

uart1是接在PA8,PA9,同时也是串口烧录口。原理图如下:



uart使用比较简单,这里不做过多介绍

二、程序编写

初始化代码如下:

void uart_init(void)
{
        GPIOA_SetBits(GPIO_Pin_9);
        GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);                        // RXD-配置上拉输入
        GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);                // TXD-配置推挽输出,注意先让IO口输出高电平
       
        UART1_BaudRateCfg(115200);//设置波特率
       
        R8_UART1_FCR = (2<<6) | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN;                // FIFO打开,触发点4字节
        R8_UART1_LCR = RB_LCR_WORD_SZ;//8bit 数据       
        R8_UART1_IER = RB_IER_TXD_EN;//使能输出
        R8_UART1_DIV = 1;               
}
main.c如下:

#include "CH57x_common.h"
#include "gpio.h"
#include "touch_key.h"
#include "uart.h"

uint16_t touch_key_value=0;
uint8_t touch_flag=0;
int main()
{   
        SystemInit();//初始化系统时钟为32M
        led_init();//led端口初始化
        touch_key_init();//触摸按键初始化
        uart_init();//uart1初始化
        R8_ADC_CONVERT|=(1<<0);//启动转换
        touch_flag=1;
        UART1_SendString((uint8_t*)"CH579 UART1 test...",sizeof("CH579 UART1 test...")-1);
        while(1)
        {
               
                if(((R8_ADC_CONVERT&(1<<4))==0)&&(touch_flag==1))//转换完成
                {
                        touch_key_value=R16_ADC_DATA;//读取ad值
                        if(touch_key_value<50)//按下
                        {
                                R32_PB_OUT&=~(1<<1);
                        }
                        else//松开
                        {
                                R32_PB_OUT|=(1<<1);
                        }
                        touch_flag=0;
                }
                if(touch_flag==0)
                {
                        R8_ADC_CONVERT|=(1<<0);
                        touch_flag=1;               
                }
               
        }   
}







运行效果:



使用特权

评论回复
沙发
一路向北lm| | 2020-1-19 13:10 | 只看该作者
怎么没有显示AD的值?

使用特权

评论回复
板凳
xinmeng_wit|  楼主 | 2020-1-22 12:45 | 只看该作者
一路向北lm 发表于 2020-1-19 13:10
怎么没有显示AD的值?

代码里面的ad是用于触摸按键的

使用特权

评论回复
地板
kkzz| | 2020-2-4 07:10 | 只看该作者
这个板子看着不错的。     

使用特权

评论回复
5
hudi008| | 2020-2-4 07:11 | 只看该作者
代码是官网的吗?   

使用特权

评论回复
评论
WCHCN 2020-2-6 10:15 回复TA
代码资料可以官网wch.cn搜索CH579下载,CH579EVT.ZIP 
6
lzmm| | 2020-2-4 07:11 | 只看该作者
谢谢楼主分享的资料。   

使用特权

评论回复
7
minzisc| | 2020-2-4 07:11 | 只看该作者
跟着楼主学习了。  

使用特权

评论回复
8
selongli| | 2020-2-4 07:11 | 只看该作者
感谢分享的。         

使用特权

评论回复
9
fentianyou| | 2020-2-4 07:11 | 只看该作者
                       

使用特权

评论回复
10
xiaoyaodz| | 2020-2-4 07:11 | 只看该作者
沁恒CH579怎么样  

使用特权

评论回复
评论
WCHCN 2020-2-6 10:15 回复TA
代码资料可以官网wch.cn搜索CH579下载,CH579EVT.ZIP 
11
febgxu| | 2020-2-4 07:11 | 只看该作者
自带串口吗?      

使用特权

评论回复
12
sdlls| | 2020-2-4 07:12 | 只看该作者
以前用过ch340的芯片            

使用特权

评论回复
13
pixhw| | 2020-2-4 07:12 | 只看该作者
不错,很全面的资料。        

使用特权

评论回复
14
gaoke231| | 2020-2-18 15:16 | 只看该作者
直接使用keil就可以是吧?

使用特权

评论回复
15
WCHCN| | 2020-2-19 15:50 | 只看该作者
gaoke231 发表于 2020-2-18 15:16
直接使用keil就可以是吧?

是的,M0内核。

使用特权

评论回复
16
gzhuli123456| | 2020-2-20 12:21 | 只看该作者
学习学习!

使用特权

评论回复
17
随风而去吧| | 2021-1-10 19:41 | 只看该作者
很棒棒哦,值得学习

使用特权

评论回复
18
shzps| | 2021-1-13 14:59 | 只看该作者
这芯片太美了

使用特权

评论回复
19
jerow| | 2021-1-14 20:32 | 只看该作者
为什么是寄存器操作呢,没有库可以调用吗?我觉得还是用库方便一点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

214

帖子

1

粉丝