qwerghf

  • 2019-04-12
  • 回复了主题帖: lpc824 救砖!!!

    ISP下载正常固件恢复即可

  • 2019-04-10
  • 回复了主题帖: ATSAM单片机

    可以直接用,不用移植,但是不建议用

  • 2019-04-03
  • 回复了主题帖: 颁奖: 知否知否 应是更多汽车方案 阅读有礼活动 颁奖啦~

    谢谢EEWORLD,个人信息确认无误:loveliness:

  • 2019-03-27
  • 回复了主题帖: 报名即将结束|兆易创新 GD32E231 DIY 大赛!100套开发板免费尝鲜+重磅豪礼!

    dcexpert 发表于 2019-3-27 21:19 如果把开发板的miniUSB换成macroUSB或者usb type-c就方便了。
    官方送了usb线

  • 2019-03-26
  • 回复了主题帖: 请问M9S8AC16CG的芯片该用什么编程啊?

    CodeWarrior

  • 回复了主题帖: [GD32E231C-START] 模拟I2C和OLED

    54chenjq 发表于 2019-3-25 21:48 新的片子吗
    最新的CM23:loveliness:

  • 2019-03-25
  • 发表了主题帖: [GD32E231C-START] 模拟I2C和OLED

    之前玩了串口以及shell功能,这一节讲解一下i2c,一开始准备用芯片的硬件实现,但是为了驱动OLED,所以为了方便测试,不飞线,直接io模拟i2c,调换i2c的引脚,引脚是PB10为I2C _SDA,PB11为I2C_SCL。代码如下:/*includes----------------------------------------------*/ #include "oled.h" #include "oledfont.h" /*definition--------------------------------------------*/ /*     [url=home.php?mod=space&uid=159083]@brief[/url]          延迟1us     @param          无     @retval         无 */ static void delay(unsigned char num) {     uint8_t i = 10;     while (num--)     {         while (i--);     } } /*     @brief          ms延迟函数     @param          无     @retval         无 */ static void delay_ms(unsigned int ms)//延迟函数,MS级别 {     unsigned int x, y;     for (x = ms; x > 0; x--)     {         for (y = 12000; y > 0; y--);     } } /*     @brief          初始化OLED与单片机的IO接口     @param          无     @retval         无 */ static void OLED_GPIO_Init(void) {     rcu_periph_clock_enable(RCU_GPIOB);     gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_11);     gpio_output_options_set(GPIOB, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_11);         gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_10);     gpio_output_options_set(GPIOB, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_10);         OLED_SCLK_Set();    //设PB11(SCL)为高电平     OLED_SDIN_Set();    //设PB10(SDA)为高电平 } /*     @brief          模拟IIC起始信号     @param          无     @retval         无 */ static void OLED_IIC_Start(void) {     OLED_SCLK_Set();    //时钟线置高     OLED_SDIN_Set();    //信号线置高     delay(1);   //延迟1us     OLED_SDIN_Clr();    //信号线置低     delay(1);   //延迟1us     OLED_SCLK_Clr();    //时钟线置低     delay(1);   //延迟1us } /*     @brief          模拟IIC停止信号     @param          无     @retval         无 */ static void OLED_IIC_Stop(void) {     OLED_SDIN_Clr();    //信号线置低     delay(1);   //延迟1us     OLED_SCLK_Set();    //时钟线置高     delay(1);   //延迟1us     OLED_SDIN_Set();    //信号线置高     delay(1);   //延迟1us } /*     @brief          模拟IIC读取从机应答信号     @param          无     @retval         无 */ static unsigned char IIC_Wait_Ack(void) {     unsigned char ack;     OLED_SCLK_Clr();    //时钟线置低     delay(1);   //延迟1us     OLED_SDIN_Set();    //信号线置高     delay(1);   //延迟1us     OLED_SCLK_Set();    //时钟线置高     delay(1);   //延迟1us     if (OLED_READ_SDIN())   //读取SDA的电平         ack = IIC_NO_ACK;   //如果为1,则从机没有应答     else         ack = IIC_ACK;      //如果为0,则从机应答     OLED_SCLK_Clr();//时钟线置低     delay(1);   //延迟1us     return ack; //返回读取到的应答信息 } /*     @brief          模拟IIC主机发送应答信号     @param          无     @retval         无 */ // static void IIC_Send_Ack(unsigned char ack) // { //  OLED_SCLK_Clr();    //时钟线置低 //  delay(1);   //延迟1us //  if(ack == IIC_ACK)  //根据情况发送应答/不应答 //      OLED_SDIN_Clr();    //应答 //  else //      OLED_SDIN_Set();    //不应答 //  delay(1);   //延迟1us //  OLED_SCLK_Set();    //时钟线置高,发送应答/不应答信号 //  delay(1);   //延迟1us //  OLED_SCLK_Clr();    //时钟线置低 //  delay(1);   //延迟1us // } /*     @brief          IIC写入一个字节     @param          IIC_Byte:写入的字节     @retval         无 */ static void Write_IIC_Byte(unsigned char IIC_Byte) {     unsigned char i;  //定义变量     for (i = 0; i < 8; i++) //for循环8次     {         OLED_SCLK_Clr();    //时钟线置低,为传输数据做准备         delay(1);   //延迟1us         if (IIC_Byte & 0x80) //读取最高位             OLED_SDIN_Set();//最高位为1         else             OLED_SDIN_Clr();    //最高位为0         IIC_Byte

  • 2019-03-24
  • 回复了主题帖: [GD32E231C-START] 串口shell调试

    littleshrimp 发表于 2019-3-23 11:09 USB转串口使用的弯排针还是焊接?
    直接弯针勾上的

  • 2019-03-22
  • 发表了主题帖: [GD32E231C-START] 串口shell调试

    上一节对已经初步体验了 GD32E231C,这一节讲究如何开发,对于开发mcu来说,需要了解其芯片手册以及sdk,通常我们找一些辅助来配合调试MCU,除了仿真器就是串口打印。这一节我们用shell辅助,之前找到一个shell,比较不错,所以移植到GD32E231C,要用串口shell,那就需要串口功能,本次采用中断接收,查询发送,代码如下:void com_gpio_init(void) {     /* enable COM GPIO clock */     rcu_periph_clock_enable(RCU_GPIOA);     /* connect port to USARTx_Tx */     gpio_af_set(GPIOA, GPIO_AF_1, GPIO_PIN_9);     /* connect port to USARTx_Rx */     gpio_af_set(GPIOA, GPIO_AF_1, GPIO_PIN_10);     /* configure USART Tx as alternate function push-pull */     gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_9);     gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, GPIO_PIN_9);     /* configure USART Rx as alternate function push-pull */     gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_10);     gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, GPIO_PIN_10); }复制代码void com_usart_init(void) {     /* enable USART clock */     rcu_periph_clock_enable(RCU_USART0);     /* USART configure */     usart_deinit(USART0);     usart_word_length_set(USART0, USART_WL_8BIT);     usart_stop_bit_set(USART0, USART_STB_1BIT);     usart_parity_config(USART0, USART_PM_NONE);     usart_baudrate_set(USART0, 115200U);     usart_receive_config(USART0, USART_RECEIVE_ENABLE);     usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);     usart_enable(USART0);         /* enable USART TBE interrupt */       //usart_interrupt_enable(USART0, USART_INT_TBE);         /* enable USART RBNE interrupt */     usart_interrupt_enable(USART0, USART_INT_RBNE);         /* USART interrupt configuration */     nvic_irq_enable(USART0_IRQn, 0); }复制代码 void USART0_IRQHandler(void) {     uint8_t receiver_byte;     if (RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE))     {         /* receive data */         receiver_byte = usart_data_receive(USART0);         shellHandler(&shell, receiver_byte);     } }复制代码void shellprintchar(const char ch) {     usart_data_transmit(USART0, (uint8_t) ch);     while (RESET == usart_flag_get(USART0, USART_FLAG_TBE)); } SHELL_TypeDef shell; void func(int i, char ch, char *str) {     printf("input int: %d, char: %c, string: %s\r\n", i, ch, str); } SHELL_EXPORT_CMD(func, func, test); void led0_on(void) {     gpio_bit_set(GPIOA, GPIO_PIN_7); } SHELL_EXPORT_CMD(led0_on, led0_on, led0_on); void led0_off(void) {     gpio_bit_reset(GPIOA, GPIO_PIN_7); } SHELL_EXPORT_CMD(led0_off, led0_off, led0_off); void led1_on(void) {     gpio_bit_set(GPIOA, GPIO_PIN_8); } SHELL_EXPORT_CMD(led1_on, led1_on, led1_off); void led1_off(void) {     gpio_bit_reset(GPIOA, GPIO_PIN_8); } SHELL_EXPORT_CMD(led1_off, led1_off, led1_off); void led2_on(void) {     gpio_bit_set(GPIOA, GPIO_PIN_11); } SHELL_EXPORT_CMD(led2_on, led2_on, led2_on); void led2_off(void) {     gpio_bit_reset(GPIOA, GPIO_PIN_11); } SHELL_EXPORT_CMD(led2_off, led2_off, led2_off); void led3_on(void) {     gpio_bit_set(GPIOA, GPIO_PIN_12); } SHELL_EXPORT_CMD(led3_on, led3_on, led3_on); void led3_off(void) {     gpio_bit_reset(GPIOA, GPIO_PIN_12); } SHELL_EXPORT_CMD(led3_off, led3_off, led3_off);复制代码 效果如下: 通过shell来控制LED的亮灭,当然支持别的函数,自己添加支持即可,具体看代码里面的适配说明。

  • 2019-03-18
  • 发表了主题帖: [GD32E231C-START]Cortex®-M23入门体验

    转眼Cortex®-M内核在MCU上使用已经很多年了,之前主要是M0、M0+、M3、M4以及M7,以为发展的M7应该没啥新的了,突然发现又出现了Cortex®-M23,兆易创新发布GD32E231,  非常高兴使用新的内核开发MCU,所以从GD32E231C-START开发板入手。如下所示:如上所示,板子做的还是挺漂亮的,标注了引脚功能和引脚号,arduino接口,方便外接设备。板子GDLINK,方便调试,但是不支持虚拟串口和U盘下载,这点希望官方可以改下硬件,我已经适配了DAPLink最新固件,可以支持全部功能,但是板子硬件不支持。对于GD32E231,依然使用MDK和IAR开发,安装官方提供的补丁即可。注意,由于是CM23内核,所以要确定IDE的license有效。GD32E231的库依然是标准库,这点我非常喜欢,简单方便,要的就是这样,开发方便,比所谓的HAL库强很多,更多内容后面讲解。

  • 2019-03-12
  • 回复了主题帖: 求推荐管脚少的单极性AD转换芯片

    MCP3421

  • 2019-03-11
  • 回复了主题帖: 有奖体验TouchGFX,开启你的创意GUI之旅

    支持一下:loveliness:

  • 2019-03-10
  • 回复了主题帖: 请问什么单片机可以用can总线通过光纤连入网络

    可以用光纤转can模块,再转回去即可

  • 2019-03-04
  • 回复了主题帖: 在工业领域的通讯模块中,使用ISO1050有哪些好处?

    不错的芯片,可以提供样片不:)

  • 2019-02-25
  • 回复了主题帖: 求ST的hal库严谨点!!!

    cruelfox 发表于 2019-2-25 07:52 这个确切说不算是 HAL 库的问题。因为 stm32h743xx.h 不属于 HAL 库的部分。 根源在于头文件里定义的结构 ...
    其实还是ST自身的问题,别的寄存器都是带R结尾表示,就这两个取消了,这不是自己命名的不规范吗

  • 2019-02-23
  • 回复了主题帖: 给客户采购解决问题,才知道教自己家的小孩子是多么省心~~

    哈哈哈,习惯就好,文档写得再清楚客户都需要你教

  • 2019-02-21
  • 回复了主题帖: GD32E230C-EVAL编译出错

    license不对,重新激活

  • 回复了主题帖: “年味大比拼,新春晒照赢好礼”活动颁奖

    谢谢论坛,谢谢管理员,确认信息无误,{:1_138:}

  • 2019-02-15
  • 回复了主题帖: 【年味大比拼】团圆年夜饭与我的婚礼

    arm8686 发表于 2019-2-15 12:42 喜帐上的人民币,过些日子能够取下来的吧?
    结完婚就可以取下了:loveliness:

  • 回复了主题帖: 【年味大比拼】团圆年夜饭与我的婚礼

    RCSN 发表于 2019-2-15 12:29 恭喜合法开车。楼主图太少,应该放多点伴娘照
    没有伴娘

最近访客

< 1/6 >

统计信息

已有216人来访过

  • 芯币:2613
  • 好友:11
  • 主题:70
  • 回复:949
  • 课时:--
  • 资源:1

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言