zoukankan      html  css  js  c++  java
  • 关于stm32的IO口的封装

    前言:STM32的PA,PB各有16脚,用不上那么多,该怎样处理呢?

    注:unchar 是 unsigned char

    关于输出同时操作8位

     1 //***************************************************************/
     2 #define part_a_o PBout(0)//                                     */
     3 #define part_b_o PBout(1)//                                     */
     4 #define part_c_o PBout(2)//                                     */
     5 #define part_d_o PBout(3)//           Data Out                  */
     6 #define part_e_o PBout(4)//                                     */
     7 #define part_f_o PBout(5)//                                     */
     8 #define part_g_o PBout(6)//                                     */
     9 #define part_h_o PBout(7)//                                     */
    10 //***************************************************************/
    11 
    12 void GPIO_WriteData(unchar data)
    13 {
    14     part_h_o=((data&0x80)>>7);
    15     part_g_o=((data&0x40)>>6);
    16     part_f_o=((data&0x20)>>5);
    17     part_e_o=((data&0x10)>>4);
    18     part_d_o=((data&0x08)>>3);
    19     part_c_o=((data&0x04)>>2);
    20     part_b_o=((data&0x02)>>1);
    21     part_a_o=((data&0x01));
    22 }

    关于输入同时操作8位

     1 //***************************************************************/
     2 #define part_a_i PBin(0)//                                      */
     3 #define part_b_i PBin(1)//                                      */
     4 #define part_c_i PBin(2)//                                      */
     5 #define part_d_i PBin(3)//         Data In                      */
     6 #define part_e_i PBin(4)//                                      */
     7 #define part_f_i PBin(5)//                                      */
     8 #define part_g_i PBin(6)//                                      */
     9 #define part_h_i PBin(7)//                                      */
    10 //***************************************************************/
    11 
    12 unchar GPIO_RedData(void)
    13 {
    14     unchar data=0x00;
    15     data=0x80&(data+0x7f+part_a_i);
    16     data=0xc0&(data+0x3f+part_b_i);
    17     data=0xe0&(data+0x1f+part_c_i);
    18     data=0xf0&(data+0x0f+part_d_i);
    19     data=0xf8&(data+0x07+part_e_i);
    20     data=0xfc&(data+0x03+part_f_i);
    21     data=0xfe&(data+0x01+part_g_i);
    22     data=0xff&(data+0x00+part_h_i);
    23     return data;
    24 }
  • 相关阅读:
    Linux_服务器_09_新虚拟机下linux网络配置
    计算机_软件技巧_01_优雅地再word中插入代码
    Tomcat_总结_01_tomcat环境搭建
    gradle_学习_01_gradle安装与基本使用
    Git_学习_01_ git 安装与配置
    redis_学习_02_redis 可视化工具 Redis Desktop Manager
    redis_学习_01_redis的安装
    Idea_学习_08_常用快捷键
    Git_学习_07_ 推送修改到远端
    20180403_调bug_大地保险_jar包冲突
  • 原文地址:https://www.cnblogs.com/wangyishan/p/8764026.html
Copyright © 2011-2022 走看看